Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

163
Views
Moment js time zone date conversion issue

I am using moment js to convert user system time to user specified time zone as per his preference. User system time zone is IST and he is specifing a different time zone. For setting the same I am using

moment.tz.setDefault("Pacific/Pago_Pago");

But in one of the scenario I am getting different dates. If I do

moment().startOf('day')

I am getting today's date as Thu Oct 28 2021 00:00:00 GMT+0530 (India Standard Time), But if I am doing

moment(endDate).startOf('day')

I am getting Thu Oct 27 2021 00:00:00 GMT+0530 (India Standard Time) Where end date is the result of last statement i.e. Thu Oct 28 2021 00:00:00 GMT+0530 (India Standard Time)

What I am doing wrong here.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

The timezone used when a moment object is created stays as part of the object and is used for subsequent processing. The effect described will happen if the default timezone is changed after the initial moment object is created.

E.g.

// Set default to IST (+5:30)
moment.tz.setDefault('Asia/Kolkata');

// Create initial moment using default timezone
let start = moment().startOf('day');

// Changing the default here doesn't affect above moment
moment.tz.setDefault('Pacific/Pago_Pago');

// This still uses the initial +5:30 offset, not -11:00 for Pago Pago
let timestamp = start.toString();

// This uses the timestamp for the original timezone, but
// then gets start of day in new default timezone
let end = moment(timestamp).startOf('day');

console.log( `Start: ${start.toString()}\nEnd  : ${end.toString()}` );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment-with-locales.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.31/moment-timezone-with-data-10-year-range.js"></script>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!