我的服务器的日期格式位于UTC
。我正在以UTC格式运行我的节点服务器。我想检查当前时间是否大于Indian timezone
的上午8点,即+5.30并且应该发送邮件。如何使用moment.js
答案 0 :(得分:5)
if (moment.tz("08:00","HH:mm","Asia/Kolkata").isBefore()) {
// ...
}
或者,由于印度不使用夏令时,实际上你不需要时刻时区。您只需要正确指定固定偏移量即可。其他使用DST或具有其他基本偏移转换的区域确实需要时刻 - 时区。
if (moment.parseZone("08:00+05:30","HH:mmZ").isBefore()) {
// ...
}
使用上述两种方法时,请记住,isBefore
默认为没有参数时的当前时间。您可以使用moment().isAfter(...)
来编写它,相反,它会稍微缩短一点。
您是否与UTC或本地时间进行比较并不重要,因为内部时刻无论如何都会跟踪基于UTC的瞬时值。
答案 1 :(得分:1)
您可以使用isAfter
和Moment Timezone:
// Get server date with moment, in the example serverTime = current UTC time
var serverDate = moment.utc();
// Get time in India with Moment Timezone
var indiaDate = moment.tz("Asia/Kolkata");
// Setting time to 8:00 AM (I'm supposing you need to compare with the current day)
indiaDate.hours(8).minutes(0).seconds(0);
if( serverDate.isAfter(indiaDate) ){
// Server date is greater than 8 AM in India
// Add here the code to send a mail
}