无法使用js转换日期格式

时间:2019-03-04 11:34:01

标签: react-native momentjs

我想将March 5th 2019的格式转换为2019-02-28

moment(this.state.preferedDate).format('YYYY-MM-DD')

使用此代码执行任务,但不起作用,得到以下消息

  

弃用警告:提供的值不是公认的RFC2822或ISO格式。当构造回落到js Date()时,    如何使用瞬间js

3 个答案:

答案 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')

相关问题