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

IT技术 javascript reactjs react-native momentjs
2021-05-18 17:05:18

我有一个 React Web 应用程序和一个 React Native 移动应用程序。当我将一个时刻日期对象从我的 React Web 应用程序传递到我的后端时,它会以某种方式转换为一个字符串并且它可以与我的后端一起使用。

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

有没有办法将时刻对象转换为普通字符串,如

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

我试过 toString() 和 toUTCString() 但它不起作用。谢谢。

2个回答

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

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

但是,如果您使用的是 2.1.0+ 版(链接),则toString应该可以:

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>

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

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

但是,将 Moment 对象转换为字符串的更直接方法是使用.format()方法,该方法将输出为“ISO 8601”标准,类似于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>