我收到格式为'MM/DD/YY HH:mm'
的日期,我可以知道来自的日期。我正在尝试通过moment-timezone帮助他们根据时区将他们转换为标准的Javascript UTC日期。
这是我正在尝试的一个例子:
var startTime = '12/03/15 14:00'
var zoneOffset = moment(startTime, 'MM/DD/YY HH:mmZ').tz('America/Chicago').format().substring(19);
var tzAdjusted = moment(startTime + zoneOffset, 'MM/DD/YY HH:mmZ');
var date = tzAdjusted.toISOString();
然后,我试着测试我的逻辑:
describe('Timezone conversions', function () {
it('Should properly convert timezones despite of running environment', function (done) {
var startTime = '12/03/15 14:00'
var zoneOffset = moment(startTime, 'MM/DD/YY HH:mmZ').tz('America/Chicago').format().substring(19);
var offset = moment(startTime + zoneOffset, 'MM/DD/YY HH:mmZ').format();
offset.slice(-6).should.equal('-06:00');
done();
})
});
因为我在México运行这个,因为芝加哥运行良好,所以在相同的时区偏移,但是如果我在运行(export TZ='UTC'
)之前将我的时区设置为UTC,那么什么会失败
这样做的正确和正确的方法是什么?
答案 0 :(得分:0)
就个人而言,我尝试通过将所有日期和时间保存为Posix时间戳(自1970年1月1日GMT以来经过的秒数)来避免此问题。你可以很快得到当前的时间戳:
var the_time_right_now = Date.now();
就是这样。 Date对象附带了各种方法,可以帮助您根据时区等从那里转换时间。