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
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
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')
}
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.
const anyTime = new Date("2017-09-28T22:59:02.448804522Z").getTime();
const currentTime = new Date().getTime();
if(currentTime > anyTime){
//codes
}