javascript - 如何在js中将MM/dd/yyyy HH:mm:ss zzz格式的字符串转换为日期
问题描述
我想MM/dd/yyyy HH:mm:ss zzz
用 moment.js 或任何其他库转换固定格式的字符串,然后再进行比较。我以 moment.js 为例,但zzz
即使我删除模式,它似乎也无法识别模式,对话isAfter
看起来也不正确。
var x = moment('12/30/2014 16:26:31 MSK', "MM/dd/yyyy HH:mm:ss zzz");
var y = moment('12/31/2014 06:46:23 MSK', "MM/dd/yyyy HH:mm:ss zzz");
console.log(x.isValid()); // false
console.log(y.isValid()); // false
console.log(x.isAfter(y)); // false
console.log(x.isBefore(y)); // false
console.log(x.isSame(y)); // false
var xWithoutZZZ = moment('12/30/2014 16:26:31', "MM/dd/yyyy HH:mm:ss");
var yWithoutZZZ = moment('12/31/2014 06:46:23', "MM/dd/yyyy HH:mm:ss");
console.log(xWithoutZZZ.isValid()); // true
console.log(yWithoutZZZ.isValid()); // true
console.log(xWithoutZZZ.isAfter(yWithoutZZZ)); // true ???? WTF WHY
console.log(xWithoutZZZ.isBefore(yWithoutZZZ)); // false
console.log(xWithoutZZZ.isSame(yWithoutZZZ)); // false
请告知解决此问题的方法https://jsfiddle.net/yjqsb754/
解决方案
Momemnt js不支持ZZZ,直接把这部分从字符串中去掉就可以正常使用了
var x = moment(x.substring(0, x.lastIndexOf(' '));
var y = moment(y.substring(0, y.lastIndexOf(' '));
推荐阅读
- php - 在 Eclipse 中重新调试 PHP Web 应用程序的概念性问题
- javascript - 为什么尽管 enumerable 设置为 true,但未显示使用 defineProperty 添加的属性?
- ruby - Ruby FFI gem 无法打开库文件
- .net - Hangfire 1.6.22 操作被取消,然后被另一个工人接走
- javascript - URL 和排除扩展标志中多个文件夹名称的正则表达式
- c# - 保持 MenuItem 的 IsChecked 属性与布尔值同步
- windows - Windows 10 使用 OpenSSH 服务器,执行 ssh 命令时,如何防止弹出 CMD 窗口出现
- laravel - 如何解决 Auth guard [web] 未定义问题
- asp.net-core - 包含 Razor 类库的控制器和模型源代码
- godot - Godot - set_offset 在 Inspector 中有效,但在代码中无效