我发现此代码可用于查找当月的第一个日期和最后一个日期。
var date = new Date();
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);
今天是 2018 年 11 月 1 日
我将这段代码用于我正在为我的一个项目开发的日历。尽管它应该以 2018-01-01T18:30:00.000Z
的形式返回该月的第一天,但它会以 2017-12-31T18:30:00.000Z
的形式返回第一天> 最后日期为 2018-01-30T18:30:00.000Z
。
但是一月份有 31 天。那么这段代码有什么问题呢?
我从 stackoverflow 找到了代码 question
最佳答案
代码没有任何问题。您在这里看到的不一致实际上是时区差异。您的插件正在打印 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());
关于javascript 返回错误的第一个日期和最后一个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48202027/