我想将March 5th 2019
的格式转换为2019-02-28
。
moment(this.state.preferedDate).format('YYYY-MM-DD')
使用此代码执行任务,但不起作用,得到以下消息
弃用警告:提供的值不是公认的RFC2822或ISO格式。当构造回落到js Date()时, 如何使用瞬间js
答案 0 :(得分:0)
当您使用不受支持的ISO 8601格式的字符串创建Moment时,会出现此警告消息。有关受支持格式的列表,请参见[this] [1]。
在这种情况下,您似乎试图解析不是ISO格式的字符串27/04/2016。如果告诉Moment格式为moment("27/04/2016", "DD/MM/2016")
,则可以在不发出警告的情况下解析此格式。另外,您可以更改输入格式以符合ISO规范:moment(“ 2016-04-27”)
此外,执行moment(new Date("27/04/2016")).format....
似乎可行。但是我认为他们是这种方法中的一些问题,可能与语言环境等有关。
你很好!
答案 1 :(得分:0)
您不能直接将其转换。您需要手动进行以下操作
var month = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december']
var date = "March 5th 2019";
var temp = date.split(" ");
var output = temp[2]+"-"+month.indexOf(temp[0].toLowerCase())+"-"+temp[1].slice(0,-2);
答案 2 :(得分:0)
尝试此解决方案-时刻('March 5th 2019','MMM Do YYYY')。format('YYYY-MM-DD')
在您的代码中,它应该类似于-moment(this.state.preferedDate,'MMM Do YYYY')。format('YYYY-MM-DD')