在javascript/momentjs中创建日期时忽略时区

kim*_*sen 61 javascript momentjs

我正在为东海岸的某些东西创建一个时间表,我需要创建一个始终返回此时的日期对象/时间戳的日期.

所以,如果我在18:00在巴黎打开页面,"new myDate()"应该返回12:00.

有关如何使用枯萎的时刻或仅使用Javascript来做到这一点的任何建议?最终结果应该是一个javascript Date对象.

tim*_*ood 114

你可以使用moment.js来做到这一点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
Run Code Online (Sandbox Code Playgroud)

方法moment.utc是在内部设置一个标志getUTCMinutes而不是使用getMinutes,因此所有时区的输出都是相同的.

  • 它不会起作用.moment.utc('2014/09/05 12:00').format()将为您提供'2014-09-05T08:00:00 + 00:00'(取决于时区)时刻('2014/09/05 12:00').format()将为您提供'2014-09-05T12:00:00 + 04:00'(包括时区信息)忽略时区的最佳方式是指定您自己的格式:时刻('2014/09/05 12:00').格式('YYYY-MM-DD [T] HH:mm:ss') (4认同)

Rom*_*kin 11

如果您希望完全忽略您的时区,可以使用以下方法:

  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);
Run Code Online (Sandbox Code Playgroud)

输出:

2014-01-29T10:01:02 
Run Code Online (Sandbox Code Playgroud)