2017-03-03 151 views
1

我想將一個字符串轉換爲日期type.i我給新的日期()字符串值。 但它返回的是第二天的日期而不是我想要轉換的日期。新的日期()返回下一個日期,而不是今天的日期

var endDate = new Date("2017-03-23T23:59:59.000Z"); 

//結束日期值現在是2011年3月24日星期五05:29:59 GMT + 0530(印度標準時間)。

請建議我在格式MM/DD/YYYY

回答

1

這個黑客可以幫助您IST使用,

var endDate = new Date("2017-03-23T23:59:59.000Z").toISOString(); 

它會給你,

「2017-03-23T23:59:59.000Z」

另外,如果你想將它轉化成DD/MM/YYYY那麼你可以使用原生的JavaScript或類似的lib時刻爲, 這simpile JS將有助於將其轉換爲任何格式。

var endDate = new Date("2017-03-23T23:59:59.000Z").toISOString(); 
var d1 = endDate.split('T'); //spliting date from T 
var d2 = d1[0].split('-'); //getting date part 
console.log('yyyy/MM/dd', d2[0] + "/" + d2[1] + "/" + d2[2]) //YYYY/MM/DD 
console.log("DD/MM/YYYY", d2[2] + "/" + d2[1] + "/" + d2[0]) 

jsfiddle link

+0

謝謝,它的工作原理 – Arunkumar

+0

但是,如何將該日期轉換爲MM/DD/YYYY格式? – Arunkumar

+0

你好,我已經更新了上面的答案,希望它適合你,如果工作,請按下:) – Ranj

0

怎樣才能得到正確的日期。如果你查看一下日期,你會看到你的日期在5小時的不同30分鐘,這是與您的日期說GMT +0530。您的原始日期爲.000Z,即GMT +0的時區。

確保在使用日期時使用相同的時區。

嘗試使用Date.UTC('your date')

+0

如何將日期轉換爲該特定時區? – Arunkumar

+0

@Arunkumar檢查更新。只需簡單地將您的日期轉換爲「UTC」即可 – Justinas

0

如果你的時間是在下面

var endDate = new Date("2017-03-23T23:59:59.00+0530"); 
0

的JavaScript對象Date沒有攜帶區信息。您看到非UTC日期的唯一原因是,瀏覽器默認選擇在控制檯中將日期顯示爲本地時間。如果你不關心的日期對象在本地時間的精確即時調心,你可以使用下面的format功能,把它變成MM/DD/YYYY格式:

function format (date) { 
 
    var mm = ('0' + (date.getUTCMonth() + 1)).slice(-2) 
 
    var dd = ('0' + date.getUTCDate()).slice(-2) 
 
    var yyyy = date.getUTCFullYear() 
 
    return mm + '/' + dd + '/' + yyyy 
 
} 
 

 
var endDate = new Date("2017-03-23T23:59:59.000Z") 
 

 
console.log(endDate.toISOString()) 
 

 
console.log(format(endDate))

Credit to Ranj張貼我之前使用Date#toISOString一個答案。)