Skip to content

Instantly share code, notes, and snippets.

@i-van
Created October 20, 2017 14:21
Show Gist options
  • Save i-van/d8f2d6502c0cd2be37afb0d187c2fd6b to your computer and use it in GitHub Desktop.
Save i-van/d8f2d6502c0cd2be37afb0d187c2fd6b to your computer and use it in GitHub Desktop.
const moment = require('moment-timezone');
const daysAfter1 = (date, days) => {
const result = new Date(date);
result.setDate(result.getDate() + days);
return result;
};
const daysAfter2 = (date, days) => {
return moment(date).add(days, 'days').toDate();
};
const daysAfter3 = (date, days, timezone) => {
return moment.tz(date, timezone).add(days, 'days').toDate();
};
const date = '2017-10-20T15:00:00.000Z';
const timezone = 'America/Los_Angeles';
const days = 14;
console.log(moment.tz(date, timezone).format());
console.log(moment(date).format());
console.log('');
const res1 = moment.tz(daysAfter1(date, days), timezone).format();
console.log(res1);
const res2 = moment.tz(daysAfter2(date, days), timezone).format();
console.log(res2);
const res3 = moment.tz(daysAfter3(date, days, timezone), timezone).format();
console.log(res3);
// ✗ TZ=America/Los_Angeles node debug/timezone.js
// 2017-10-20T08:00:00-07:00
// 2017-10-20T08:00:00-07:00
//
// 2017-11-03T08:00:00-07:00
// 2017-11-03T08:00:00-07:00
// 2017-11-03T08:00:00-07:00
// ✗ TZ=America/New_York node debug/timezone.js
// 2017-10-20T08:00:00-07:00
// 2017-10-20T11:00:00-04:00
//
// 2017-11-03T08:00:00-07:00
// 2017-11-03T08:00:00-07:00
// 2017-11-03T08:00:00-07:00
// ✗ TZ=Europe/Kiev node debug/timezone.js
// 2017-10-20T08:00:00-07:00
// 2017-10-20T18:00:00+03:00
//
// 2017-11-03T09:00:00-07:00
// 2017-11-03T09:00:00-07:00
// 2017-11-03T08:00:00-07:00
// ✗ TZ=Europe/London node debug/timezone.js
// 2017-10-20T08:00:00-07:00
// 2017-10-20T16:00:00+01:00
//
// 2017-11-03T09:00:00-07:00
// 2017-11-03T09:00:00-07:00
// 2017-11-03T08:00:00-07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment