moment.js无法将实际月份转换为其他格式

时间:2018-05-17 10:42:57

标签: javascript php twitter-bootstrap momentjs

现在我正在使用bootstrap 4

的datetimepicker

到目前为止一切都很好。我使用格式LLLL来显示这样的日期 "moment().format('LLLL'); // Thursday, May 17, 2018 11:57 AM"

这也有效 现在要保存我的MySQL数据库中的数据,我想以YYYY-MM-DD HH:mm:ss格式转换它

有趣的是,这通常很有效,但是一旦我有实际月份的日期,它就不再工作了。
这是我的功能输出:

a = Donnerstag, 4. Mai 2017 09:00
Zeit Datenbank ist adb: Invalid date
b = Donnerstag, 13. April 2017 09:00
Zeit Datenbank ist bdb: 2017-04-13 09:00:00

我有两个日期时间选择器(a& b)。任何想法为什么转换May都没有用?

编辑: 一月不工作
三月不工作
可能不工作了 12月没有工作

所有其他月份都在运作!

代码I使用:

var a=document.getElementById("datetimepicker_start").value;
(to read: a = Donnerstag, 7. Februar 2019 12:53)
var adb = moment(a).format("YYYY-MM-DD HH:mm:ss");
(to convert: Zeit Datenbank ist adb: 2019-02-07 12:53:00)

1 个答案:

答案 0 :(得分:0)

你需要:

  • 指定您正在阅读的日期的格式
  • 包含必要的区域设置

使用没有额外args的时刻将根据有限数量的格式解析日期,但您可以通过传递额外的参数来确切地告诉它如何解析给定日期。

如果您正在阅读德语,则可以在此处https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/locale/de.js添加德语区域设置。

e.g。

var a = 'Donnerstag, 4. Mai 2017 09:00'
var adb = moment(a, 'LLLL').format("YYYY-MM-DD HH:mm:ss");
console.log(adb);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/locale/de.js"></script>

要完全明确,您还可以在阅读日期时指定区域设置:

moment(a, 'LLLL', 'de');