Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中将iso日期转换为毫秒_Javascript_Iso_Isodate - Fatal编程技术网

在javascript中将iso日期转换为毫秒

在javascript中将iso日期转换为毫秒,javascript,iso,isodate,Javascript,Iso,Isodate,我可以将iso日期转换为毫秒吗? 例如,我想转换这个iso 2012-02-10T13:19:11+0000 到毫秒 var myDate = Date.parse("2012-02-10T13:19:11+0000"); 因为我想将当前日期与创建日期进行比较。创建日期是iso日期。试试这个 var日期=新日期(“1987年11月21日16:00:00”);//模拟约会 var毫秒=date.getTime(); //这将返回毫秒数 //从1970年1月1日开始 //如果您的日期小于该日期

我可以将iso日期转换为毫秒吗? 例如,我想转换这个iso

2012-02-10T13:19:11+0000
到毫秒

var myDate = Date.parse("2012-02-10T13:19:11+0000");
因为我想将当前日期与创建日期进行比较。创建日期是iso日期。

试试这个

var日期=新日期(“1987年11月21日16:00:00”);//模拟约会
var毫秒=date.getTime();
//这将返回毫秒数
//从1970年1月1日开始
//如果您的日期小于该日期,则该值将为负值

console.log(毫秒)前面解决方案的简写是

var myDate = +new Date("2012-02-10T13:19:11+0000");
它执行即时类型转换,并以毫秒格式直接输出日期

另一种方法是使用dateutil的parse方法,它只输出以毫秒为单位的历元时间

var myDate = Date.parse("2012-02-10T13:19:11+0000");

2017年的另一个选项是使用
Date.parse()
。然而,MDN指出,它在ES5之前是不可靠的

var date = new Date(); // today's date and time in ISO format
var myDate = Date.parse(date);

有关更多详细信息,请参阅。

另一种可能的解决方案是将当前日期与
1970年1月1日
进行比较,您可以通过
新日期(0)
获得
1970年1月1日


另一种解决方案是使用如下数字对象解析器:

let result=Number(新日期(“2012-02-10T13:19:11+0000”);
让resultWithGetTime=(新日期(“2012-02-10T13:19:11+0000”)。getTime();
控制台日志(结果);

console.log(resultWithGetTime)是的,您可以在一行中完成此操作

使用它,我们可以以毫秒为单位获得日期

var date=new date(日期字符串); var毫秒=date.getTime()


这对我有用

如果要将UTC日期转换为毫秒
语法:Date.UTC(年、月、日、小时、分钟、秒、毫秒)
e、 g:
date\u in\u mili=date.UTC(2020,07,03,03,40,40)

console.log('milyseconds',日期单位:'u mili)

如果有人想只抓取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

你说的“毫秒”到底是什么意思?相对于哪个时间点的毫秒数?你是说UNIX时间戳吗?就像在yahoo api中一样,日期是以毫秒为单位显示的,但在fb api中,日期是以iso
2012-02-10T13:18:45+0000为单位显示的,可能与@mplungjan相关,但不准确。我想知道这两个时间之间的差异。所以首先使用链接将它们转换为日期,然后执行
date1.getTime()-date2.getTime()
-这就是您所需要的全部是的,日期不会在所有浏览器上解析。请参见我对您答案的评论;)这在Firefox中不起作用
var myDate=new Date(“2012-02-10T13:19:11+0000”)@mplungjan为什么不使用?我知道这很麻烦但不管怎样)呃。。。那是大写字母“T”在里面干什么?这就是它不起作用的原因@mplungjan.你有一个小小的输入错误,“+”@stuart siegler实际上没有输入错误,“+”以毫秒为单位返回日期。@LordTribal“+new”以毫秒为单位返回日期?@stuart siegler没有具体的“+new”,但“+”起作用,可以说是一个速记。例如
+new Date()
返回
1447857230137
,这是以毫秒为单位的时间。显式构造一个JavaScript数字对象要清楚得多:
const dateMillis=Number(新日期('2017-09-26T20:24:18.801Z'))
,但
新日期('2017-09-26T20:24:18.801Z')。getTime()
新日期('2017-09-26T20:24:18.801Z')。valueOf()
更具可读性。与此函数相反的是什么!内置解析器在ECMAScript 2011之后也不可靠。:-)
let isoDate = '2020-09-28T15:27:15+05:30';
let result = isoDate.match(/\d\d:\d\d/);
console.log(result[0]);
15:27