【问题标题】:jQuery Date Formatting in Business CatalystBusiness Catalyst 中的 jQuery 日期格式
【发布时间】:2014-02-19 22:58:39
【问题描述】:

我经常使用商业催化剂,并希望能够根据需要设置日期格式。日期输出如下:

<span class="date">06-Feb-2014</span>

目前使用 jQuery 1.10.2,如果可以的话,我可以添加 jQuery UI。

我尝试了以下没有效果:

$(document).ready(function () {
    $('span.date').each(function() { 
        var dateFormat = $(this).text()
        var dateFormat = $.datepicker.formatDate('MM dd, yy', new Date(dateFormat));
        //alert(dateFormat);
        $(this).html(dateFormat + "<br>");
    });
});

有问题的网站是http://www.doverfoursquare.org

也许与现有脚本存在某种冲突?

非常感谢任何帮助。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    我知道这是一篇旧帖子,但似乎没有答案...

    我会为此使用 Liquid,例如在使用模板的事件模块中:

    {{date | date: "dddd"}}
    

    和/或

    {{date | date: "%d"}} {{date | date: "MMM"}}
    

    应该让你“7 月 4 日星期六”

    您可以使用此资源来帮助修改修饰符/过滤器

    http://docs.businesscatalyst.com/dev-assets/reference#!/liquid-reference/reference/filters.html!date-filters

    【讨论】:

      【解决方案2】:

      在处理格式化日期时,我总是看到自己回到 momentjs: http://momentjs.com/ 。它不是最快的框架,但它可以帮助您以任何所需的方式格式化您的日期:

      moment().format("DD-MMM-YYYY"); // "20-Feb-2014"
      

      【讨论】:

        【解决方案3】:

        它在这里按预期工作:

        请注意,datepickerjQuery UI 的扩展槽,因此您必须包含它才能工作:

        //code.jquery.com/ui/1.10.4/jquery-ui.js

        Fiddle

        请注意,在示例中 var dateFormat 已重命名,因此不会重新声明存在。

        $(document).ready(function () {
            $('span.date').each(function() { 
                var value = $(this).text(),
                    date = $.datepicker.formatDate(
                        'MM dd, yy', new Date(value)
                    );
                $(this).html(date + "<br>");
            });
        });
        

        或者你可以说:

        $(this).html(
            $.datepicker.formatDate(
                'MM dd, yy', new Date($(this).text())
            ) + "<br>"
        );
        

        编辑日期格式:

        Ref. ECMA

        格式可以

        YYYY-MM-DD
        

        但不是

        DD-MM-YYYY
        

        还有read this


        错误:

        运行你的页面,它显示这个错误:

        Uncaught TypeError: Object [object Object] has no method 'player' (index):343

        按来源:

            $(document).ready(function() {
                var settings = {
                    progressbarWidth: '200px',
                    progressbarHeight: '5px',
                    progressbarColor: '#22ccff',
                    progressbarBGColor: '#eeeeee',
                    defaultVolume: 0.8
                };
                $(".player").player(settings); // <<--- Error line
            });
        

        这可能是在加载时停止脚本等的原因。

        它也给出了,(这可能是一些Facebook issue):

        应用程序配置不允许给定 URL。:应用程序的设置不允许一个或多个给定 URL。它必须与网站 URL 或画布 URL 匹配,或者域必须是应用程序域之一的子域。

        event.returnValue 已弃用。请改用标准的 event.preventDefault()。

        你可以忽略它,因为它是一个 jQuery“东西”和 IE 修复/破解。

        【讨论】:

        • 我已经让它“工作”了,它现在会影响日期,但只显示“未定义的 NaN,NaN”,并且没有正确的日期。见底部:example 有什么建议吗?
        • @user3330323:如果您执行console.log("DATE:&gt;&gt;" + $(this).text() + "&lt;&lt;") 会怎样?结果如何?
        • 'DATE:>>here有一个样本。
        • 这很好奇。它适用于野生动物园,但不适用于 Firefox。有什么想法吗?
        • @user3330323:在回答中添加了更多信息。您应该阅读日期格式,因为它很容易出错。例如:"07 17 2012" 将变为 2012 年 7 月 17 日,"17 07 2012" 将变为 2013 年 5 月 7 日等。在控制台中进行测试,例如(new Date("2012 11 11")).toString()
        猜你喜欢
        • 1970-01-01
        • 2014-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-12
        • 1970-01-01
        相关资源
        最近更新 更多