我可以将iso日期转换为毫秒吗?例如我要转换此iso
2012-02-10T13:19:11+0000
到毫秒。
因为我想从创建日期比较当前日期。创建的日期是一个iso日期。
我可以将iso日期转换为毫秒吗?例如我要转换此iso
2012-02-10T13:19:11+0000
到毫秒。
因为我想从创建日期比较当前日期。创建的日期是一个iso日期。
1328796537
,但是在fb api中,日期以iso形式显示2012-02-10T13:18:45+0000
date1.getTime() - date2.getTime()
-这就是您所需要的
Answers:
试试这个
var date = new Date("11/21/1987 16:00:00"); // some mock date
var milliseconds = date.getTime();
// This will return you the number of milliseconds
// elapsed from January 1, 1970
// if your date is less than that date, the value will be negative
console.log(milliseconds);
编辑
您提供了一个ISO日期。它也被Date
对象的构造函数接受
var myDate = new Date("2012-02-10T13:19:11+0000");
var result = myDate.getTime();
console.log(result);
编辑
我发现最好的方法是手动消除偏移量。
var myDate = new Date("2012-02-10T13:19:11+0000");
var offset = myDate.getTimezoneOffset() * 60 * 1000;
var withOffset = myDate.getTime();
var withoutOffset = withOffset - offset;
console.log(withOffset);
console.log(withoutOffset);
似乎正常。至于将ISO字符串转换为Date
对象的问题,您可以参考提供的链接。
编辑
修复了根据Prasad19sara的注释将错误转换为毫秒的错误。
var myDate = new Date("2012-02-10T13:19:11+0000");
先前解决方案的简写是
var myDate = +new Date("2012-02-10T13:19:11+0000");
它进行即时类型转换,并直接以毫秒格式输出日期。
另一种方法是使用Date util的解析方法,该方法仅输出以毫秒为单位的EPOCH时间。
var myDate = Date.parse("2012-02-10T13:19:11+0000");
+new Date()
返回1447857230137
的时间是毫秒。
const dateMillis = Number(new Date('2017-09-26T20:24:18.801Z'))
,new Date('2017-09-26T20:24:18.801Z').getTime()
或者new Date('2017-09-26T20:24:18.801Z').valueOf()
更具可读性。
是的,您可以单行执行此操作
let ms = Date.parse('2019-05-15 07:11:10.673Z');
console.log(ms);//1557904270673
var date = new Date(date_string); var毫秒= date.getTime();
这对我有用!
万一任何人只想从ISO日期开始获取时间,以下内容将很有帮助。我正在寻找那个,但找不到任何问题。因此,万一有人看到会有所帮助。
let isoDate = '2020-09-28T15:27:15+05:30';
let result = isoDate.match(/\d\d:\d\d/);
console.log(result[0]);
输出将是isoDate中唯一的时间,
15:27