moment.js时区得到毫秒

时间:2018-04-05 06:43:10

标签: javascript node.js momentjs

我试图让天数过去。我正在为日期存储纪元(毫秒)。 我正在从数据库中读取startDate(第一条记录的日期值),以毫秒为单位,我想在指定的时区找到当前的纪元。

我试过了:

var startDate = rows[0]['MIN_DATE'];
var endDate = moment().tz("America/New_York");

然后计算差异,我用了:

var oneDay = 24 * 60 * 60 * 1000;
var daysCount = Math.ceil((endDate - startDate) / (oneDay));

startDate的值为:

1522821600000 which is: Wednesday, April 4, 2018 2:00:00 AM GMT-04:00 DST

endDate的值是:

Moment_d: Wed Apr 04 2018 22:24:45 GMT-0400 (EDT)_isAMomentObject: true_isUTC: true_isValid: true_locale: Locale_offset: -240_pf: Object_z: Zone__proto__: Object

daysCount的值是2,怎么样? 我怎样才能从而获得毫秒而不是对象:

moment().tz("America/New_York");

3 个答案:

答案 0 :(得分:1)

要直接回答您的问题,请使用.valueOf()获取moment.tz的值(“America / New_York”)

var endDate = moment.tz("America/New_York").valueOf()

我很难理解你的问题,但我相信你正试图在考虑正确时区的日子之间找到区别。以下使用.diff()(https://momentjs.com/docs/#/displaying/difference/

给出了准确的结果
var timeZone = "America/New_York"
var startDate = 1522821600000
var momentStartDate = moment.tz(startDate,timeZone)
var momentEndDate = moment.tz(timeZone)

alert(momentEndDate.diff(momentStartDate, 'days') );

答案 1 :(得分:0)

使用fromNow()功能。这是非常直截了当的。

这样做:

moment(date).fromNow();

如果日期过去,它将给你通过的天数以及如果日期是未来的天数。

以下是示例:



var date = 1522821600000; // your date

console.log(moment(date).fromNow());

<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

通过以下声明解决了这个问题:

var endDate = moment().tz("America/New_York").valueOf();