我正在使用date.js处理一些JavaScript。
var event_schedule_datetime = data.events[i].schedule[0].datetime;
var event_schedule_datetime_readable = Date.parse(event_schedule_datetime).toString('dddd, MMMM d, yyyy @ h:mm tt');
event_schedule_datetime
采用ISO8601格式(2013-11-03T09:00:00 + 01:00)。我假设date.js能够解释该格式,但我一直得到Unable to get property 'toString' of undefined or null reference
。如果我将event_schedule_datetime
替换为2013-11-01T18:00:00+01:00
,则会发生同样的事情。
我知道变量具有正确的数据,因为它在另一个地方被引用并导致<time datetime="2013-11-01T18:00:00+01:00">2013-11-01T18:00:00+01:00</time>
。基本上,我试图给观众一个人类可读的日期和时间。
我还发现删除时区偏移确实有效。
var event_schedule_datetime_readable = Date.parse(event_schedule_datetime.substring(0, 19)).toString('dddd, MMMM d, yyyy @ h:mm tt');
因此,在使用ISO8601时,似乎date.js不喜欢偏移。这是对的吗?
答案 0 :(得分:0)
看起来像本机Date对象可以处理这个:
控制台输出:
> new Date('2013-11-03T09:00:00+01:00')
Sun Nov 03 2013 03:00:00 GMT-0500 (EST)
> new Date('2013-11-03T09:00:00+01:00').toISOString()
"2013-11-03T08:00:00.000Z"