compare timestamps in javascript

回眸只為那壹抹淺笑 提交于 2020-01-23 11:04:17

问题


I have a date saved in a string with this format: 2017-09-28T22:59:02.448804522Z this value is provided by a backend service.

Now, in javascript how can I compare if that timestamp is greater than the current timestamp? I mean, I need to know if that time happened or not yet taking in count the hours and minutes, not only the date.


回答1:


You can parse it to create an instance of Date and use the built-in comparators:

new Date('2017-09-28T22:59:02.448804522Z') > new Date()
// true
new Date('2017-09-28T22:59:02.448804522Z') < new Date()
// false



回答2:


You could also convert it to unix time in milliseconds:

console.log(new Date('2017-09-28T22:59:02.448804522Z').valueOf())

const currentTime = new Date('2017-09-28T22:59:02.448804522Z').valueOf()
    
const expiryTime = new Date('2017-09-29T22:59:02.448804522Z').valueOf()

if (currentTime < expiryTime) {
    console.log('not expired')
}



回答3:


const anyTime = new Date("2017-09-28T22:59:02.448804522Z").getTime();
const currentTime = new Date().getTime();
if(currentTime > anyTime){
    //codes
}



回答4:


If you can, I would use moment.js * https://momentjs.com/

You can create a moment, specifying the exact format of your string, such as:

var saveDate = moment("2010-01-01T05:06:07", moment.ISO_8601);

Then, if you want to know if the saveDate is in the past:

boolean isPast = (now.diff(saveDate) > 0);

If you can't include an external library, you will have to string parse out the year, day, month, hours, etc - then do the math manually to convert to milliseconds. Then using Date object, you can get the milliseconds:

var d = new Date();
var currentMilliseconds = d.getMilliseconds();

At that point you can compare your milliseconds to the currentMilliseconds. If currenMilliseconds is greater, then the saveDate was in the past.



来源:https://stackoverflow.com/questions/46478974/compare-timestamps-in-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!