新的日期()返回下一个日期而不是今天的日期

时间:2017-03-03 07:11:54

标签: javascript

我正在尝试将字符串转换为日期类型。我将字符串值赋予新的日期()。 但是它会在第二天返回,而不是我想要转换的日期。

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

//结束日期值现在------星期五2017年3月24日05:29:59 GMT + 0530(印度标准时间)。

请建议我如何以MM / DD / YYYY格式获取正确的日期

5 个答案:

答案 0 :(得分:1)

这个黑客可以帮到你,

// You have x, according to your question description.
var x  = '"545.20"';          // A string of "545.20" (8 characters)
var x2 = x.replace(/"/g, ''); // A string of 545.20   (6 characters)
var x3 = parseFloat(x2);      // A floating point number of 545.20   (You can do math with this)

它会给你,

  

“2017-03-23T23:59:59.000Z”

此外,如果你想将它转换为DD / MM / YYYY那么你可以使用原生的javascript或lib就像那样, 这个简单的js将有助于将其转换为任何格式。

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

jsfiddle link

答案 1 :(得分:0)

如果您查看日期,您会看到您的日期在5小时30分钟内有所不同,这与您的GMT +0530日期相同。您的原始日期为.000Z,时区为GMT +0

确保在使用日期时使用相同的时区。

尝试使用Date.UTC('your date')

答案 2 :(得分:0)

如果您的时间是在IST下面使用

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

答案 3 :(得分:0)

JavaScript format对象不带时区信息。您看到非UTC日期的唯一原因是浏览器默认选择在控制台中将日期显示为本地时间。如果您不关心日期对象与当地时间的确切时刻对齐,您可以使用以下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))格式:

Date#toISOString

Credit to Ranj用于在我之前使用{{1}}发布答案。)

答案 4 :(得分:0)

我在这里创建了解决方案,请在下面找到链接

enter image description here