Javascript 将德语日期转换为ISO日期

Javascript 将德语日期转换为ISO日期,javascript,node.js,momentjs,Javascript,Node.js,Momentjs,我正在开发一个Node.js应用程序,我必须转换一个德语字符串date,比如am13。Dezember 2017转换为ISO日期,当我使用矩量.js库转换它时,我得到了一个无效日期,有什么解决方案吗?您可以使用toISOString方法,它使用ISO标准以字符串形式返回日期对象: var d = new Date(); var n = d.toISOString(); 您可以解析13。2017年12月使用,然后再使用 由于您的输入既不是ISO 8601认可的格式,也不是RFC 2822中的格式

我正在开发一个Node.js应用程序,我必须转换一个德语字符串date,比如
am13。Dezember 2017
转换为ISO日期,当我使用矩量.js库转换它时,我得到了一个
无效日期
,有什么解决方案吗?

您可以使用toISOString方法,它使用ISO标准以字符串形式返回日期对象:

var d = new Date();
var n = d.toISOString();

您可以解析
13。2017年12月
使用,然后再使用

由于您的输入既不是ISO 8601认可的格式,也不是RFC 2822中的格式,因此您必须提供格式参数
DD
表示月份的第几天,
MMMM
表示月份的名称,
yyy
表示四位数的年份

第三个参数告诉矩使用给定的语言环境解析输入:

从版本2.0.0开始,可以将区域设置键作为第三个参数传递给
moment()
moment.utc()

请注意,您必须导入
de
locale才能使其正常工作(在浏览器中或节点的以下部分使用
moment with locales.js
/locales/de.js

这里有一个活生生的例子:

var m=moment('2017年12月13日,'DD-MMMM-YYYY,'de');
log(m.toISOString())
看看这里:

你需要这样的东西吗:

moment('13. Dezember 2017', 'DD. MMMM YYYY', 'de').format(moment.ISO_8601);

您可以使用以下方法轻松设置其格式:

var now = moment(); // pass your date to moment
var formatedNow = moment().toISOString(now);
or
var formatedNow = now.toISOString();

欢迎来到Stack Overlow。为了帮助您,您必须澄清所使用的库的版本以及到目前为止您在a中尝试了什么:momentjs(格式、区域设置、严格模式)中出现无效日期错误的原因很多