javascript返回错误的第一个日期和最后日期

时间:2018-01-11 07:42:25

标签: javascript angularjs date

我发现此代码可用于查找当月的第一个日期和最后一个日期。

var date = new Date();
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);

今天是11/1/2018

我将这段代码用于我正在为我的一个项目开发的日历。即使它应该以{{1​​}}的形式返回该月的第一天,它会将第一天作为2018-01-01T18:30:00.000Z返回,将最后一个日期作为2017-12-31T18:30:00.000Z返回。

但是1月份有31天。那么这段代码有什么问题呢?

我从stackoverflow question

中找到了代码

1 个答案:

答案 0 :(得分:4)

代码没有问题。你在这里看到的不一致实际上是时区差异。您的插件正在ISO字符串中打印日期。要在您自己的语言环境中获取此字符串,请在日期对象上使用toLocaleString()



var date = new Date();
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);

console.log(firstDay.toLocaleString());
console.log(lastDay.toLocaleString());