Ignoring timezones when creating a date in javascript/momentjs

JavascriptMomentjs

Javascript Problem Overview


I am creating a schedule for something on the east coast, and I need to create a date that always returns a date object/timestamp for this time.

So, if I open the page in Paris at 18:00, the "new myDate()" should return 12:00.

Any suggestions on how I can do this with wither momentJS or just Javascript? The end result should be a javascript Date object.

Javascript Solutions


Solution 1 - Javascript

You can do this with moment.js using moment.utc().

http://momentjs.com/docs/#/parsing/utc/

moment([2011, 10, 8, 5]).format(); // different output based on timezone
moment.utc([2011, 10, 8, 5]).format(); // same output for all timezones

The way moment.utc works is by setting a flag internally to use getUTCMinutes instead of getMinutes, thus the output is the same in all timezones.

Solution 2 - Javascript

If you want your timezone completely ignored, you can use the following approach:

  var firstDayStr = '29 January 2014';
  var startAtTime = '10:01:02 AM';
  var localFormat = 'YYYY-MM-DD[T]HH:mm:ss';
  
  var m = moment(firstDayStr + ' ' + startAtTime).format(localFormat);
  
  console.log(m);

Output:

2014-01-29T10:01:02 

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionkimpettersenView Question on Stackoverflow
Solution 1 - JavascripttimrwoodView Answer on Stackoverflow
Solution 2 - JavascriptRoman PushkinView Answer on Stackoverflow