2014-02-11 33 views
2

我有Wed Dec 11 00:00:00 EST 2013這種格式的日期。我想在JavaScript中將此日期轉換爲dd-mmm-yyyy格式。如何在不改變時區的情況下進行轉換。在JavaScript中將EST時區日期轉換爲'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'); 

但我認爲這不是很好的解決方案,因爲如果我的日期字符串時區爲美國東部時間更改爲IST或任何其他時區比它會不工作。
將日期轉換爲所需格式有什麼好的解決方案嗎?
在此先感謝。
編輯:如果有人使用JQuery的解決方案比它還好。

回答

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

+0

其實我的日期格式爲'週三12月11日00:00:00 EST 2013'它是在'EST'或'EDT'按夏令時。 –

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

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

埃德森

相關問題