【问题标题】:Convert EST timezone date to 'dd-mmm-yyyy' format in JavaScript在 JavaScript 中将 EST 时区日期转换为“dd-mmm-yyyy”格式
【发布时间】:2014-02-11 05:43:02
【问题描述】:

我有Wed Dec 11 00:00:00 EST 2013这种格式的日期。我想在 JavaScript 中将此日期转换为 dd-mmm-yyyy 格式。如何在不更改时区的情况下进行转换。

我搜索了这个解决方案,并找到了以下解决方案:

function getDateObject(dateString) {

    var dt = "";
    var ind = dateString.indexOf("EST");

    dt = dateString.substring(0, ind);
    dt += dateString.substring(ind+3, dateString.length);
    return new Date(dt);
}  
//convert this date into dd-mmm-yyyy format    
var now = getDateObject(MyDateString);
var frmDate = now.format('dd-mmm-yyyy');  

但我认为这不是一个好的解决方案,因为如果我的日期字符串时区从 EST 更改为 IST 或任何其他时区,它将无法正常工作。
将日期转换为所需格式有什么好的解决方案吗?
在此先感谢。
编辑:如果有人有使用 JQuery 的解决方案,那也很好。

【问题讨论】:

    标签: javascript jquery timezone date-format


    【解决方案1】:

    如果您的 JSON 日期格式类似于 Date(1396895400000)

    然后将您的 JSON 日期转换为字符串格式,如下所示:

    var dt = new Date(parseInt((/Date(1396895400000)/).substr(6))).toString();

    然后 dt 看起来像Tue Apr 08 2014 00:00:00 GMT+0530 (India Standard Time)

    现在从 dt 获取子字符串如下:

    dt.substr(8, 2) + "-" + (dt.substr(4, 3)) + "-" + dt.substr(11, 4)
    

    那么你的约会将看起来像08-Apr-2014

    【讨论】:

    • 其实我的日期格式是Wed Dec 11 00:00:00 EST 2013它是ESTEDT按照夏令时。
    【解决方案2】:

    如果您的日期保持与Wed Dec 11 00:00:00 EST 2013 相同的格式,则从该日期值中获取子字符串。
    在你的情况下,如果

    var dt = 'Wed Dec 11 00:00:00 EST 2013';
    

    然后

    dt.substr(8,2)+"-"+dt.substr(4,3)+"-"+dt.substr(24,4) 
    

    会给你11-Dec-2013

    【讨论】:

      【解决方案3】:

      您好,建议您使用以下 JS 库 moment.js - http://momentjs.com/

          <!DOCTYPE html>
      <html>
      <!--
        Created using jsbin.com
        Source can be edited via http://jsbin.com/xicixeku/1/edit
      -->
      <head>
      <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
      <script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.7.0/moment.js"></script>  
        <meta charset="utf-8">
        <title>JS Bin</title>  
      
      <style id="jsbin-css">
      
      </style>
      </head>
      <body>
      
      
      
      <script>
      $(function()
        {
          var myDate = moment("Wed Dec 11 00:00:00 EST 2013");
          alert (myDate);        
          var newDate = moment(myDate).format('DD-MMM-YYYY');
          alert (newDate);
        });
      </script>
      </body>
      </html>
      

      我已经使用上面的示例创建了一个 JsBin,因此您可以使用它 - 希望这完全符合您的要求。这是link

      埃德森

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多