2014-10-17 39 views
0

II如何將特定日期/時間轉換爲特定時區(非本地)以UTC使用moment.jsmoment-timezone.js
我用:如何使用moment.js和moment-timezone.js將特定時區(非本地)的給定日期/時間轉換爲UTC

var s = moment("10/15/2014 09:25 AM").tz("America/Los_Angeles").format('hh:mm:ss a'); 

我有困難的時候,我想給上moment()的值。
讓我向您解釋事實:
我必須從單元格中獲取日期/時間值,格式如下:10/15/2014 09:25 AM (MM/DD/YYYY h:mm a)。該值不是一個常量,它是某些條目的打開時間。 我想在UTC中轉換此字符串。不幸的是,字符串不是我當地的時間,是在America/Los_Angeles (PDT/PST)時區。我也想自動關注PDT(9 Mar, 2 Nov)和。

-10/15/2014 09:25 AM America/Los_Angeles -07:00 => 10/15/2014 04:25 PM UTC 00:00 
-12/15/2014 09:25 AM America/Los_Angeles -08:00 => 12/15/2014 05:25 PM UTC 00:00  

我該怎麼做?

如果我使用:
Var s = moment("10/15/2014 09:37 PM").tz("America/Los_Angeles").format('hh:mm:ss a'); ......它會被解析爲我的本地時間,它會被轉換爲America/Los_Angeles

- 10/15/2014 09:25 AM Eastern European Time +03:00 => 10/15/2014 11:25 PM America/Los_Angeles +07:00 

我認爲我的問題的簡短描述是這樣的:
- 我怎麼能「告訴」給腳本,這個字符串10/15/2014 09:37 AM是從特定的時區。在此之後,轉換爲UTC是小菜一碟。

謝謝。

回答

0

必須提供一種模式,當你想解析一個具有特定時區的日期字符串,UTC除外。對於UTC,您可以提供日期字符串。

用法:moment.tz(字符串,模式,zoneString)

你的情況:

var moment = require("moment-timezone"); 
var d1 = moment.tz("10/15/2014 09:25 AM", "MM/DD//YYYY hh:mm A", "America/Los_Angeles"); 
d1.toString(); // Wed Oct 15 2014 09:25:00 GMT-0700 
d1.tz("UTC").format('hh:mm:ss a'); // '04:25:00 pm' 

如果省略格式的解析是錯誤的,但有一個過時的注意事項:https://github.com/moment/moment/issues/1407

看了這個http://momentjs.com/timezone/docs/#/using-timezones/parsing-ambiguous-inputs/來處理DST

相關問題