如何将时刻日期转换为字符串并删除时刻对象

Kel*_*vin 16 javascript momentjs reactjs react-native

我有一个React Web App和一个React Native Mobile App.当我从我的反应web应用程序传递一个时刻日期对象到我的后端时,它会以某种方式转换为字符串,并且它与我的后端一起工作.

当我使用我的本机移动应用程序执行此操作时,它将日期作为片刻对象传递,并且它不会转换为字符串,但它不起作用.

有没有办法将moment对象转换为普通的字符串

"Tue May 05 2015 23:59:59 GMT+0800 (HKT)"
Run Code Online (Sandbox Code Playgroud)

我尝试了toString()和toUTCString(),但它不起作用.谢谢.

kev*_*guy 26

用于moment().format()从日期创建格式化字符串.

console.log(moment().format())
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
Run Code Online (Sandbox Code Playgroud)

但是,如果你使用的是2.1.0+版本(链接),那么toString应该工作:

console.log(moment().toString())
console.log(typeof moment().toString())
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
Run Code Online (Sandbox Code Playgroud)


Sov*_*iut 7

您正在尝试调用仅在javascript Date对象上存在的方法。为了调用这些方法,您需要首先将Moment对象转换为普通Date对象。您可以使用.toDate()Moment对象上的方法来执行此操作。

var plainDate = moment().toDate();
console.log(plainDate.toUTCString());
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
Run Code Online (Sandbox Code Playgroud)

但是,将Moment对象转换为字符串的更直接的方法是使用.format()方法,该方法将输出为像这样的“ ISO 8601”标准2014-09-08T08:02:17-05:00

console.log( moment().format() );
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
Run Code Online (Sandbox Code Playgroud)