2017-03-03 102 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一个答案。)