【问题标题】:Convert string to Timestamp in Javascript using MomentJS使用 MomentJS 将字符串转换为 Javascript 中的时间戳
【发布时间】:2016-09-04 17:57:07
【问题描述】:

我有一个类似的字符串:

var from = '2016-06-06T21:03:55' ;

现在我如何将其转换为时间戳,以便我可以将其作为 momentjs 的输入。 基本上,我想找到这篇文章中看到的时间戳的差异:Get hours difference between two dates in Moment Js

查看上面帖子中的最后一个答案。

请帮助他们。从现在开始,我就一直坚持下去。

【问题讨论】:

  • 这是一个有效的日期,所以只需 new Date(from) 会为您提供一个日期对象,不同之处只是 date1.getHours() - date2.getHours() 没有整个库来为您完成。

标签: javascript timestamp momentjs timestampdiff


【解决方案1】:

选项 1

您可以初始化一个 Date 对象并调用 getTime() 以 Unix 形式获取它。它以毫秒为单位,因此您需要除以 1000 才能在几秒内得到它。

(new Date("2016/06/06 21:03:55").getTime()/1000)

它可能有小数位,因此将其包装在 Math.round 中会清除它。

Math.round(new Date("2016/06/06 21:03:55").getTime()/1000)

演示:https://jsfiddle.net/nanilab/0jpxu30z/

选项 2

Date.parse() 方法解析日期的字符串表示,并返回自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数,如果字符串无法识别或在某些情况下包含非法日期,则返回 NaN值(例如 2015-02-31)。

var input = "2016-06-06 21:03:55";
input = input.split(" - ").map(function (date){
    return Date.parse(date+"-0500")/1000;
}).join(" - ");

演示:https://jsfiddle.net/nanilab/cweq2q0q/

【讨论】:

【解决方案2】:

将此变量传递给时刻 ctor。

var from = '2016-06-06T21:03:55' ;
var a = moment('2016-06-06T22:03:55');
var b = moment(from);

console.log(a.diff(b, 'minutes')); //60
console.log(a.diff(b, 'hours')); //1
console.log(a.diff(b, 'days')); //0 
console.log(a.diff(b, 'weeks')); //0

或者您可以使用格式方法查看矩变量的值,例如:

b.format('DD/MM/YYYY hh:mm:ss'); // 06/06/2016 09:03:55
b.format(); // 2016-06-06T21:03:55+10:00

【讨论】:

  • Ash ,如果我将变量作为参数传递给时刻,则 b 的值为:716400000 太奇怪了
猜你喜欢
  • 2020-11-22
  • 2018-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-15
  • 2014-10-15
  • 1970-01-01
  • 2021-06-21
相关资源
最近更新 更多