这个问题在这里已经有了答案:
javascript: how to parse a date string
(4 个回答)
5年前关闭。
在 javascript 中,使用 exif-js 提取图像文件的元数据时,我得到的日期时间格式为 2017:03:09 14:49:21。
DateTimeOriginal 属性中的值格式为 YYYY:MMY:DD HH:MM:SS。当我使用 var d = new Date(2017:03:09 14:49:21) 时,它返回 NaN。导致问题的是 YYYY、MM 和 DD 之间的冒号。
如何解决这个问题呢?
提前致谢。
最佳答案
不要使用内置解析器(即 Date 构造函数或 Date.parse)来解析字符串,因为它很大程度上依赖于实现且不可靠。如果您可以相信日期是有效的,那么将执行以下操作:
/* Parse date string in YYYY-MM-DD hh:mm:ss format
** separator can be any non-digit character
** e.g. 2017:03:09 14:49:21
*/
function parseDate(s) {
var b = s.split(/\D/);
return new Date(b[0],b[1]-1,b[2],b[3],b[4],b[5]);
}
console.log(parseDate('2017:03:09 14:49:21').toString());
向值添加验证相当容易。否则,请使用库并确保指定要解析的格式。
关于Javascript:如何将 exif 日期时间数据转换为时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43083993/