How to convert moment date to a string and remove the moment object

匿名 (未验证) 提交于 2019-12-03 08:54:24

问题:

I have a React Web App and a React Native Mobile App. When I pass a moment date object from my react web app to my backend, it gets converted to a string somehow and it works with my backend.

When I do it with my react native mobile app, it passes the date as a moment object and it doesn't get converted to a string and it doesn't work.

Is there a way to convert the moment object into a plain string like

"Tue May 05 2015 23:59:59 GMT+0800 (HKT)" 

I tried toString() and toUTCString() and it doesn't work. Thanks.

回答1:

Use moment().format() to create a formatted string from the date.

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

But if you're using version 2.1.0+ (link), toString should work:

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


回答2:

You're trying to call methods that only exist on a javascript Date object. In order to call those methods you'd need to first convert the Moment object into a plain Date object. You can use the .toDate() method on the Moment object to do this.

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

However, a more direct way of converting a Moment object to a string is to use the .format() method, which will output as "ISO 8601" standard that looks like 2014-09-08T08:02:17-05:00.

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


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!