我试图让天数过去。我正在为日期存储纪元(毫秒)。 我正在从数据库中读取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");
答案 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;
答案 2 :(得分:0)
通过以下声明解决了这个问题:
var endDate = moment().tz("America/New_York").valueOf();