新的日期()返回下一个日期,而不是今天的日期
问题描述:
我想将一个字符串转换为日期type.i我给新的日期()字符串值。 但它返回的是第二天的日期而不是我想要转换的日期。新的日期()返回下一个日期,而不是今天的日期
var endDate = new Date("2017-03-23T23:59:59.000Z");
//结束日期值现在是2011年3月24日星期五05:29:59 GMT + 0530(印度标准时间)。
请建议我在格式MM/DD/YYYY
答
这个黑客可以帮助您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])
答
怎样才能得到正确的日期。如果你查看一下日期,你会看到你的日期在5小时的不同30分钟,这是与您的日期说GMT +0530
。您的原始日期为.000Z
,即GMT +0
的时区。
确保在使用日期时使用相同的时区。
答
如果你的时间是在下面
var endDate = new Date("2017-03-23T23:59:59.00+0530");
答
的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
一个答案。)
谢谢,它的工作原理 – Arunkumar
但是,如何将该日期转换为MM/DD/YYYY格式? – Arunkumar
你好,我已经更新了上面的答案,希望它适合你,如果工作,请按下:) – Ranj