使用 JavaScript 解析 Apache 日志时间戳
Parsing Apache Log Timestamps with JavaScript
我正在尝试使用 moment.js 将 Apache 日志时间戳 (14/Jun/2015:11:05:54 -0700
) 格式化为正确的 MySQL DATETIME
格式。
获取 MySQL DATETIME
格式轻而易举。但 moment 似乎只能自动检测 ISO 8601
格式。将 Apache 日志的时间戳传递到 moment 时,我的 Node.js 控制台输出:
> moment( '08/Jun/2015:15:03:29' ).format("YYYY-MM-DD HH:mm:ss")
'Invalid date'
如果不在 JavaScript 中进行大量字符串拆分,我想不出一种解析 Apache 日志时间戳的方法。有没有一种干净的方法可以将 Apache 日志时间戳加载到 moment 中?或者可能进入 Date
对象?
注意:更改 Apache 日志的时间戳格式对我的情况不起作用,因为我使用的是旧日志文件,而不是新日志文件。
您需要告诉 moment 字符串的格式,以便它可以解析它。
类似于:
moment( '08/Jun/2015:15:03:29', 'DD/MMM/YYYY:HH:mm:ss Z').format("YYYY-MM-DD HH:mm:ss")
我正在尝试使用 moment.js 将 Apache 日志时间戳 (14/Jun/2015:11:05:54 -0700
) 格式化为正确的 MySQL DATETIME
格式。
获取 MySQL DATETIME
格式轻而易举。但 moment 似乎只能自动检测 ISO 8601
格式。将 Apache 日志的时间戳传递到 moment 时,我的 Node.js 控制台输出:
> moment( '08/Jun/2015:15:03:29' ).format("YYYY-MM-DD HH:mm:ss")
'Invalid date'
如果不在 JavaScript 中进行大量字符串拆分,我想不出一种解析 Apache 日志时间戳的方法。有没有一种干净的方法可以将 Apache 日志时间戳加载到 moment 中?或者可能进入 Date
对象?
注意:更改 Apache 日志的时间戳格式对我的情况不起作用,因为我使用的是旧日志文件,而不是新日志文件。
您需要告诉 moment 字符串的格式,以便它可以解析它。
类似于:
moment( '08/Jun/2015:15:03:29', 'DD/MMM/YYYY:HH:mm:ss Z').format("YYYY-MM-DD HH:mm:ss")