我发现此代码可用于查找当月的第一个日期和最后一个日期。
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
中找到了代码答案 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());