【问题标题】:Apache logs timestamp to Date typescriptApache 将时间戳记录到日期打字稿
【发布时间】:2017-07-29 20:02:06
【问题描述】:

我从 Apache 日志中获取此时间戳 "18/May/2011:12:40:18 -0700",我想将其转换为 Date 类型。我想从时间戳中提取月份、月份、年份和时间。

当我尝试根据之前显示的数据创建新日期时,我收到来自 TS 编译器的 Invalid data 错误消息。我认为-0700 是问题所在,所以我寻求解决方案。

【问题讨论】:

  • 我认为this jsbin 示例显示了您遇到的问题。 JavaScript 无法将该格式解析为日期。 (-0700 是与 UTC 的差异)。您可能需要自己解析日期或使用库
  • 虽然我认为这是运行时错误,而不是 TS 编译器错误...
  • 你说得对,这对我有用。非常感谢!

标签: apache date typescript logging


【解决方案1】:

问题是日期和时间之间的冒号。您需要将其替换为空格。

var timestamp = '18/May/2011:12:40:18 -0700';

var jsdate = new Date(timestamp.replace(':',' '));

【讨论】:

    【解决方案2】:

    下面的代码显示了您遇到的问题。 JavaScript 无法将该格式解析为日期。 (-0700 是与 UTC 的差异)。

    var dates = [];
    
    dates.push(new Date("18/May/2011:12:40:18 -0700"));
    dates.push(new Date("18/May/2011:12:40:18-0700"));
    dates.push(new Date("2011-05-18:12:40:18-0700"));
    
    dates.forEach(parsedDate => console.log(parsedDate.toString()))

    您可能需要自己解析日期或使用库

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-19
      • 2018-02-07
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 2019-01-22
      • 2022-01-23
      • 1970-01-01
      相关资源
      最近更新 更多