简体   繁体   中英

Subtract 1 day from date in different timezone using moment.js and moment-timezone.js

I want to subtract 1 day from the time now in a different timezone. The moment.js docs say to use referenceTime as the time to subtract one day from. The code below prints the current time in Los Angeles (first) and then the the time 1 day ago from today in the timezone I am currently in (second), I want it to print the time 1 day ago from the timezone in Los Angeles.

require moment = require('moment'),
        moment_tz = require('moment-timezone');

var referenceTime = moment_tz().tz("America/Los_Angeles").format();
console.log(referenceTime);
var referenceTimeMinusOne = moment().subtract(1,'days').calendar(referenceTime);
console.log(referenceTimeMinusOne); 

It doesn't matter, it operates on UTC and converts afterwards.

moment = require('moment-timezone');

var la = moment().tz("America/Los_Angeles")
var nl = moment().tz("Europe/Amsterdam")

console.log('now:')
console.log(la.format());
console.log(nl.format());

var earlier_la = la.subtract(1,'days')
var earlier_nl = nl.subtract(1,'days')

console.log('\nearlier:')
console.log(earlier_la.format());
console.log(earlier_nl.format());

// Earlier Dutch time converted back to Los Angelos equals 
// Earlier Los Angelos time
console.log(earlier_nl.tz('America/Los_Angeles').format());

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM