【问题标题】:javascript return wrong first date and last datesjavascript 返回错误的第一个日期和最后一个日期
【发布时间】:2018-06-20 11:39:06
【问题描述】:

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

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找到了代码

【问题讨论】:

  • 这就是为什么我提到这个问题作为链接。这是行不通的。这就是问题
  • @mersocarlin 为什么要链接他在问题中所做的同一个问题?

标签: javascript angularjs date


【解决方案1】:

代码没有问题。您在这里看到的不一致实际上是时区差异。您的插件正在以 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());

【讨论】:

  • 哦,这就是问题所在。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-29
  • 1970-01-01
  • 2014-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多