【问题标题】:Convert IETF date format to shorter one using jquery使用 jquery 将 IETF 日期格式转换为较短的日期格式
【发布时间】:2012-06-17 23:28:32
【问题描述】:

我有一长串日期。 看起来像这样:2012 年 6 月 18 日星期一 19:00:00。 我的问题很简单。 我希望它像这样显示:dd/mm/yyyy HH:mm (HH implament for 24 hours ) 我正在使用 jQuery 及其所有 UI。 请不要告诉我添加这个 Date.js 类。肯定可以通过简单的 jQuery 来完成 :) 谢谢!

【问题讨论】:

    标签: jquery date


    【解决方案1】:

    由于您已加载 jQueryUI,因此内置了完整的日期格式化实用程序,但它不处理时间。除此之外,您需要自己使用原生 javscript Date 对象或使用 date.js 之类的数据库来简化解析。

    使用 jQUeryUI 的示例:http://jsfiddle.net/qqLMd/

     var newDate=$.datepicker.formatDate('yy-mm-dd', new Date('Mon Jun 18 2012 19:00:00');    
    

    http://docs.jquery.com/UI/Datepicker/formatDate

    您确信这是一个简单的 jQUery 过程是错误的。 jQuery 在核心 API 中没有任何日期处理

    MDN DATE Docs

    【讨论】:

    • 问题,如果我有这个日期,我想在 var 中更改,我可以把它写在那里吗?
    • 它有效,我喜欢: var newDate=$.datepicker.formatDate('yy-mm-dd', new Date(someLongDate);
    • 但只有一个问题..我在创建 dd/mm/yyyy hh:mm 之类的东西时遇到问题
    • 我已经解释过时间不包含在格式化中。您可以使用两个答案的组合
    • 这是一个使用两个答案的小提琴。代码要短得多jsfiddle.net/qqLMd/1
    【解决方案2】:

    你可以使用 substring() 方法。

    var longDate = 'Mon Jun 18 2012 19:00:00';
    
    var date = longDate.substring(8,10);
    var month = longDate.substring(4,7);
    var year = longDate.substring(11,15);
    var hours = longDate.substring(16,18);
    var minutes = longDate.substring(19,21);
    
    if(month == "Jan")
        month = "01";
    else if(month == "Feb")
        month = "02";
    else if(month == "Mar")
        month = "03";
    else if(month == "Apr")
        month = "04";
    else if(month == "May")
        month = "05";
    else if(month == "Jun")
        month = "06";
    else if(month == "Jul")
        month = "07";
    else if(month == "Aug")
        month = "08";
    else if(month == "Sep")
        month = "09";
    else if(month == "Oct")
        month = "10";
    else if(month == "Nov")
        month = "11";
    else if(month == "Dec")
        month = "12";
    
    var oriDate = date + "/" + month + "/" + year + " ";
    if(hours == 0)
        oriDate += "00:";
    else
        oriDate += hours + ":";
    if(minutes == 0)
        oriDate += "00";
    else
        oriDate += minutes;
    
    alert(oriDate); // 18/06/2012 19:00
    

    在这里查看 jsfiddle:http://jsfiddle.net/reygonzales/v2tSb/

    【讨论】:

    • 似乎工作,仍然是一个非常低效的代码。大量的 Ifs 和 var 创作。好像 jQuery 函数可以做得更快。
    • 您可以删除 var 语句——它们是为了便于阅读。您还可以将 if/else 值存储在以 3 个字符串作为键的哈希映射中。 jQuery 是一个基于 javascript 的库,因此它的日期格式化功能再好不过了——也许只是更具可读性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 2016-12-02
    • 2013-11-07
    • 2017-05-01
    • 2014-02-25
    相关资源
    最近更新 更多