我有一个React Web App和一个React Native Mobile App。当我将一个时间日期对象从我的反应web应用程序传递到我的后端时,它会以某种方式转换为字符串,并且它与我的后端一起工作。
当我使用我的本机移动应用程序执行此操作时,它会将日期作为片刻对象传递,并且它不会转换为字符串,但它不起作用。
有没有办法将moment对象转换为像
这样的普通字符串"Tue May 05 2015 23:59:59 GMT+0800 (HKT)"
我尝试了toString()和toUTCString(),但它不起作用。感谢。
答案 0 :(得分:15)
使用moment().format()
从日期创建格式化字符串。
console.log(moment().format())

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
&#13;
但如果您使用的是版本2.1.0 +(link),则toString
应该有效:
console.log(moment().toString())
console.log(typeof moment().toString())
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
&#13;
答案 1 :(得分:6)
您尝试调用仅存在于javascript Date
对象上的方法。为了调用这些方法,您需要先将Moment
对象转换为普通的Date
对象。您可以使用Moment对象上的.toDate()
方法执行此操作。
var plainDate = moment().toDate();
console.log(plainDate.toUTCString());
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
&#13;
然而,将Moment对象转换为字符串的更直接方法是使用.format()
方法,该方法将输出为&#34; ISO 8601&#34;标准看起来像2014-09-08T08:02:17-05:00
。
console.log( moment().format() );
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
&#13;