【问题标题】:How to get correct date from string date("Y-m-d")? [duplicate]如何从字符串日期(“Y-m-d”)中获取正确的日期? [复制]
【发布时间】:2018-11-29 17:45:05
【问题描述】:

我使用 Angular 5。

我要将字符串转换为日期。

我的代码是:

const start_date = '2015-02-03';
const startDate = new Date(start_date);
console.log(startDate);
console.log(startDate.getDate()); // startDate.getDate() is my target

这段代码的输出是:

Mon Feb 02 2015 19:00:00 GMT-0500 (Eastern Standard Time)
2

但结果我想得到3

如何在不使用时区的情况下解决这个问题?

【问题讨论】:

  • 如果你想要的只是日期,那么+start_date.slice(-2) 可以在没有内置解析器的变幻莫测和更少的代码的情况下完成这项工作。 ;-)

标签: javascript angular typescript date


【解决方案1】:

很简单。

试试这样:

const start_date = '2015-02-03';
const startDate = new Date(start_date + ' 00:00:00');
console.log(startDate);
console.log(startDate.getDate());

【讨论】:

  • 像这样的非标准 ISO 格式可能在不同的浏览器/环境中解析不同
  • @Igor Carvalho,我解决了它并且效果很好。感谢您的帮助。
  • 在 Safari 中返回无效日期,因为格式与 ECMA-262 不一致。仅代码答案没有帮助,您应该解释为什么 OP 有问题以及您的答案如何解决它。
【解决方案2】:

简单。您可以使用.toUTCString(),它按照函数建议返回 UTC 时间的日期。

在你的情况下:

const start_date = '2015-02-03';
const startDate = new Date(start_date);
console.log(startDate);
console.log(startDate.toUTCString()); 

【讨论】:

  • 感谢您的宝贵时间。我想要的是获得正确的天数(我的问题是 3)
猜你喜欢
  • 2010-12-23
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
  • 2014-03-12
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
相关资源
最近更新 更多