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

标签 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);

今天是 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/

相关文章:

javascript - angularjs指令将参数传递出 Controller

javascript - JSON 对象复制自身

javascript - Instagram OAuthException : you must provide a client_id 错误

java - 无法使用 Maven 运行 npm grunt bower

javascript - 如何禁用过去的日期?

date - 将 “Fri Apr 29 06:01:46 EDT 2016”转换为HIVE中的日期格式?

PHP - 设置/模拟假日期

javascript - 在 if 语句中排除所有其他事件 ID

javascript - 如何在 Cookie 上强制 HttpOnly FALSE,以便 JavaScript 可以使用 PHP 跨域读取它们?

javascript - angularjs 测试指令修改用户输入