我想将日期转换为时间戳,我的输入是26-02-2012。我使用
new Date(myDate).getTime();
上面写着NaN..有人能告诉我怎么转换吗?
我想将日期转换为时间戳,我的输入是26-02-2012。我使用
new Date(myDate).getTime();
上面写着NaN..有人能告诉我怎么转换吗?
当前回答
如果你还需要增加时间,这个方法也能奏效 new Date('2021-07-22 07:47:05.842442+00').getTime()
这在没有时间的情况下也同样有效 new Date('2021-07-22 07:47:05.842442+00').getTime()
这也可以工作,但它不会接受时间 新日期(2021/07/22).getTime ()
最后,如果所有的都不工作,使用这个 日期(年,月,日,时,分,秒,毫秒)
注意,对于Month,计数从0开始,因此Jan === 0, Dec === 11
其他回答
您的字符串不是Date对象指定要处理的格式。您必须自己解析它,使用像MomentJS这样的日期解析库或更老的DateJS(据我所知,目前还没有维护),或者在要求date解析它之前将其调整为正确的格式(例如,2012-02-29)。
为什么你得到NaN:当你要求new Date(…)处理一个无效的字符串时,它返回一个Date对象,该对象被设置为无效的日期(new Date("29-02-2012"). tostring()返回" invalid Date ")。在此状态下对日期对象调用getTime()将返回NaN。
更新:如果你来这里寻找当前的时间戳
Date.now(); //as suggested by Wilt
or
var date = new Date();
var timestamp = date.getTime();
或者简单地
new Date().getTime();
/* console.log(new Date().getTime()); */
对于那些希望具有yyyymmddHHMMSS格式的可读时间戳的人
> (new Date()).toISOString().replace(/[^\d]/g,'') // "20190220044724404"
> (new Date()).toISOString().replace(/[^\d]/g,'').slice(0, -3) // "20190220044724"
> (new Date()).toISOString().replace(/[^\d]/g,'').slice(0, -9) // "20190220"
使用示例:备份文件扩展名。/我的/ / my.file.js.20190220路径
你只需要倒转你的日期数字,然后用,
new Date(2012,01,26).getTime(); // 02 becomes 01 because getMonth() method returns the month (from 0 to 11)
在你的情况下:
var myDate="26-02-2012";
myDate=myDate.split("-");
new Date(parseInt(myDate[2], 10), parseInt(myDate[1], 10) - 1 , parseInt(myDate[0]), 10).getTime();
附注:英国地区在这里并不重要。
试试这个函数,它使用Date.parse()方法,不需要任何自定义逻辑:
function toTimestamp(strDate){
var datum = Date.parse(strDate);
return datum/1000;
}
alert(toTimestamp('02/13/2009 23:31:30'));