使用javascript将ISO 8601日期字符串格式化为0:00 AM

时间:2013-10-24 22:00:15

标签: javascript debugging date iso8601 isodate

我有以下ISO 8601日期字符串:

var isoDate = 2013-10-01T09:00:00.000-04:00;

尝试使用Date()功能设置日期格式时,日期的时区会更改为我当地的时区(请注意它是08:00而不是09:00

Date.fromISOString(isoDate);  /* Returns: Tue Oct 01 2013 08:00:00 GMT-0500 (Central Standard Time)*/

我想完全保持当前字符串的原始时区

如果字符串有09:00,我想输出9PM

最常规的做法是什么?

注意:我也尝试过使用datejs而没有运气。尝试以下操作返回空白结果:

Date.parse('2013-10-01T09:00:00.000-04:00')

1 个答案:

答案 0 :(得分:0)

使用new运算符,Date构造函数,toISOString方法和多个字符串替换来保留原始字符串:

var foo = "2013-10-01T09:00:00.000-04:00";
var bar = foo.substr(-6);
var baz = foo.substr(11,2)
var isoDate = new Date(foo).toISOString().replace("Z",bar).replace(/T../,"T"+baz);
var hours = String(baz).concat(Number(baz) < 12 ? "PM" : "AM").replace(/^0/,"")

<强>参考

相关问题