在JavaScript中将EST时区日期转换为'dd-mmm-yyyy'格式

时间:2014-02-11 05:43:02

标签: javascript jquery timezone date-format

我的日期为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解决方案比使用JQuery还要好。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

如果您的日期保持与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

答案 2 :(得分:1)

您会建议您使用以下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

埃德森