我在初始化javascript日期对象时面临一个奇怪的问题,无论我初始化它显示日期为1 JAN 1970 05:30;
这是我尝试初始化的方式
var d=new date(27-02-1989);
警告'd'显示1970年1月1日.....,有时它需要从数据库传递一个日期,但格式为mm / dd / yyyy不是我想要的格式,即dd / mm / yyyy < / p>
这个问题突然爆发,因为几天前一切顺利,但今天打开项目后(2天后)这个问题让我感到恼火
答案 0 :(得分:2)
我看到你已经接受了答案,但这不是你能做的最好的事情。所有常用浏览器都没有正确解析的格式,至少IE 8中接受的答案将失败。
将字符串转换为日期的唯一安全方法是解析它,例如
var s = '27-02-1989';
var bits = s.split('-');
var date = new Date(bits[2], --bits[1], bits[0]);
答案 1 :(得分:1)
根据here你可以尝试:
new Date()
new Date(milliseconds)
new Date(dateString)
new Date(year, month, day [, hour, minute, second, millisecond ])
因此,对于您的案例使用(编辑:您需要记住月份为零)
var d = new Date(1989,01,27);
请注意 - 使用Date
(大写D)
答案 2 :(得分:1)
答案 3 :(得分:1)
// Transform your european date in RFC compliant date (american)
var date = '27-02-1989'.split('-').reverse().join('-');
// And this works
var d = new Date( date );
证明:
答案 4 :(得分:0)
首先
var d=new date(27-02-1989);
在javascript中是完全错误的表达式,而且即使我们更正确地重写它:
var d=new Date('27-02-1989');
无法在js中原生解析此日期字符串。
您可以尝试以下解决方案:
new Date(year, month-1, day)
拆分字符串并在setDate, setMonth, setYear
对象
new Date()
方法
请注意,在最后两种方法中,您需要从月份值中扣除1,因为月份是从零开始的(0表示1月,11表示12月)