如何通过javascript将日期转换为毫秒? [复制]

Posted

技术标签:

【中文标题】如何通过javascript将日期转换为毫秒? [复制]【英文标题】:How to convert date to milliseconds by javascript? [duplicate] 【发布时间】:2018-08-21 05:49:04 【问题描述】:

例如,我有多个日期(25-12-2017),我需要通过 javascript 将它们转换为毫秒

【问题讨论】:

【参考方案1】:

var dateTokens = "2018-03-13".split("-");
//creating date object from specified year, month, and day
var date1 = new Date(dateTokens[0], dateTokens[1] - 1, dateTokens[2]);
//creating date object from specified date string
var date2 = new Date("2018-03-13");

console.log("Date1 in milliseconds: ", date1.getTime());
console.log("Date2 in milliseconds: ", date1.getTime());

console.log("Date1: ", date1.toString());
console.log("Date2: ", date2.toString());

【讨论】:

请注意,两种方法返回的时间值因您的时区偏移量而异(您的代码中有错误)。不要使用内置解析器。【参考方案2】:

除了使用vanilla javascript,你还可以使用很多库来获得更多的功能。

如date-fns、moment.js 等

例如,使用 moment.js 你可以通过moment('25-12-2017', 'DD-MM-YYYY').valueOf() 将日期转换为毫秒,比 vanilla javascript 更优雅和强大。

【讨论】:

这应该是评论,不是答案。 @RobG 是否有行为的答案指向我使用答案或评论? 请参阅How do I write a good answer? 特别是,答案应根据回答问题部分回答问题。想象一下,问一个关于如何用纯脚本在 DOM 中做某事的问题,你得到的只是“使用 jQuery 或 Prototype.js 之类的库”或“使用 react 或 angular 之类的框架”之类的答案。 @RobG 知道了,我已经更新了答案,谢谢。【参考方案3】:

一种方法是在new Date 上使用年、月和日作为参数

new Date(年,月[,日[,小时[,分[,秒[,毫秒]]]]]);

您可以使用函数来准备日期字符串。

注意:月份是 0-11,这就是为什么 m-1

这是一个sn-p:

function prepareDate(d) 
  [d, m, y] = d.split("-"); //Split the string
  return [y, m - 1, d]; //Return as an array with y,m,d sequence


let str = "25-12-2017";
let d = new Date(...prepareDate(str));

console.log(d.getTime());

文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

【讨论】:

好的,但是为什么 prepareDate 函数不只返回一个日期?

以上是关于如何通过javascript将日期转换为毫秒? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

将毫秒转换为日期 (jQuery/JavaScript)

如何将日期时间对象转换为毫秒

如何将字符串日期转换为长毫秒

JS中日期型与长整型是如何转换的

JS中日期型与长整型是如何转换的

H2 将日期转换为毫秒