在IE / Firefox中显示JS Date对象的日期/无无效

时间:2011-12-09 21:35:59

标签: javascript datetime

我在表格中显示日期时间对象但是由于某种原因在IE中它显示为无或无效日期我的格式有问题,或者是否有一种简单的方法可以让它更具可读性,例如mm / dd / yyyy HH:MM

这是以chrome显示的内容:

Mon Nov 28 2011 16:00:00 GMT-0500 (EST)

这是从Unix时间戳转换为API层中的输出。

3 个答案:

答案 0 :(得分:2)

可能是Date对象的创建失败了,因为新的Date()构造函数只接受一些有限的,依赖于实现的日期字符串集。

您可以使用Globalize库来处理此类问题,即使不涉及通常意义上的本地化 - 但是处理日期的不同字符串表示也是一种本地化。它首先看起来有点混乱(需要一些时间来深入研究它 - 我的书“Going Global with JavaScript and Globalize.js”包含一个更易读的描述,有许多例子),它远非完美,但它非常是有用的。

如果您知道时间戳数据是某种已知的确切格式,则可以轻松解析它,然后根据您自己的格式描述符输出它。为了明确起见,假设格式是用

举例说明的格式

2011年11月28日星期一16:00:00 GMT-0500(EST)

(我知道这是你提到的输出格式,但我只是用它作为例子),你首先要做简单的字符串操作来丢弃“GMT”和“(EST)”部分(Globalize目前无法处理它们),产生例如

2011年11月28日星期一16:00:00 - 05:00

然后您只需使用以下代码:

var foo = Globalize.parseDate(timestamp,'ddd MMM d yyyy HH:mm:ss zzz');
var out = Globalize.format(foo,'MM/dd/yyyy HH:MM');
document.write(out);

答案 1 :(得分:0)

只需创建自己的方法将日期格式化为字符串,以便将所有问题都传递给不同的浏览器和平台

答案 2 :(得分:-1)

我怀疑Chrome在这里很有用,并为您调用.toString()方法。

Date对象有几种格式化字符串输出的方法。有关示例,请参阅the w3schools reference page