我使用moment-timezone
创建了两个时区:
var moment = require('moment-timezone');
var startTime = moment.tz('2017-10-17 09:00', 'America/Los_angeles');
var endTime = moment.tz('2017-10-17 23:00', 'America/Los_angeles');
请注意,这两个时刻是America/Los_angeles
时区的同一天 - 一个在上午9点,另一个在晚上11点。但是,它们可能不是在当地时区的同一天,当然也不是UTC。 moment.isSame()
时区是否有意识?我可以依赖以下表达式来始终返回true:
startTime.isSame(endTime, 'day')
后续问题:我知道moment
对象只是包装了JavaScript Date对象。 moment.tz()
对象是否也记住了时区?
答案 0 :(得分:1)
当使用指定时区构建或转换为指定时区时,Moment对象确实记住了它们的时区。
isSame
函数,当给出'day'
之类的参数时,将获取每个对象的年,月和日值,并以数字方式进行比较。
换句话说,即使在UTC中或在一个时区或另一个时区中评估的两个时刻不会在同一天,他们仍然可以在他们自己的本地代表中拥有相同的日期。