2017-05-08 41 views
0

這裏是我的情況:我 有日期時間值僅在此格式:
「2017-05-01T07:40:00.000 + 10:00」
,但需要將其轉換爲像這樣的可讀日期時間格式:
例如。 2017年5月1日07:40上午
- 而不將其轉換爲本地時間,因爲如果我使用字符串轉換爲一個DateTime格式而不將其轉換爲本地時間

var t = "2017-05-01T07:40:00.000+10:00"; 
var d = new Date(t); //using javascript Date object 
var z = moment(t); // or using moment.js: 

變種d和z都有這樣相同的輸出:
週一2017年5月1日05 :40:00 GMT + 0800(臺北標準時間)

//05/01/2017 05:40 AM 

零下2小時在我的本地時區GMT +8,但我不希望它被轉換的方式。 我只是需要確切的時間這是05/01/2017 07:40 AM
有沒有其他方法可以在javascript中獲得我想要的輸出?

+0

這是什麼樣的格式? 「2017-05-01T07:40:00.000 + 10:00」 –

+0

它是ISO字符串格式,日期和時間的ISO標準規範, – alomegah

回答

0

Regex模式/-|:|T/g嘗試使用了split()

var t = "2017-05-01T07:40:00.000+10:00"; 
 
var s =t.split(/-|:|T/g).slice(0,5) 
 
var c =parseInt(s[3]) > 12 ? parseInt(s[3])-12 : s[3]; 
 
var f =parseInt(s[3]) > 12 ? 'PM' : 'AM'; 
 

 
console.log(s[1]+'/'+s[2]+'/'+s[0]+' '+c+':'+s[4]+' '+f);

+0

這是使用正則表達式的一個很好的答案。但即時通訊仍在尋找其他選擇。 – alomegah

+0

我需要AM/PM的12小時轉換,這個解決方案仍然在24小時時間格式 – alomegah

+0

@alomegah看到我更新的答案。我加了'AM&PM'代碼 – prasanth

0

我是這樣認爲的,這將幫助你。

var t = "2017-05-01T07:40:00.000Z"; 
var d = new Date(t); //using javascript Date object 
+0

var t已經是字符串格式。與我上面寫的 – alomegah

+0

相同,但檢查我在字符串的末尾添加了Z而不是+10:00 –

+0

是的,我們不需要將它轉換爲字符串。 –