在Typescript中的单个Date中将带有日期和字符串的字符串与时间一起转换

时间:2016-07-22 17:00:02

标签: javascript typescript

我有一个日期和时间存储在Typescript中的不同字符串中,我想将其转换为日期。

它让我疯狂,因为我在GMT-3中,即使我使用UTC,日期也不是应该的。

我有两个问题:第1,日期不正确,第2,是否有更多"优雅"这样做的方法?

   parseDate(date: string, time: string) : Date {
        let d = new Date(Date.UTC(
          Number(date.substring(0,4)), 
          Number(date.substring(5,7)) - 1, 
          Number(date.substring(8)),
          Number(time.substring(0, 2)),
          Number(time.substring(3))
        ));
        return d;
      }

我正在测试日期' 2018-02-09'和时间< 10:15'我得到的是2018年2月9日2018 07:15:00 GMT-0300(南部东部标准时间)

2 个答案:

答案 0 :(得分:1)

该日期实际上看起来很好,您是否使用toString()来查看它包含的内容?这将始终使用您当地的时区。

尝试使用toUTCString()

如果你需要很好的解析功能而不导入一个完全膨胀的库,我会建议fecha(https://github.com/taylorhakes/fecha

答案 1 :(得分:1)

使用Date.UTC时,您将时区设置为UTC,要使用浏览器时区,您只需使用:

parseDate(date: string, time: string) : Date {
  return new Date(date + ' ' + time)
}
parseDate('2018-02-09', '10:15') // Fri Feb 09 2018 10:15:00 GMT+0100 (CET) - I'm in GMT+01