我的日期为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还要好。
答案 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
埃德森