【问题标题】:How to convert moment date to a string and remove the moment object如何将时刻日期转换为字符串并删除时刻对象
【发布时间】:2018-01-30 05:38:36
【问题描述】:

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

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

有没有办法将 moment 对象转换为纯字符串,如

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

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

【问题讨论】:

  • 如果有帮助就试试格式化功能momentjs.com/docs/#/displaying/format
  • @shinon 你可以试试这个 var p = moment(new Date()).format("YYYY-MM-DD HH:mm:ssZ");控制台.log(p);控制台.log(typeof(p));字符串

标签: javascript reactjs react-native momentjs


【解决方案1】:

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

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() 方法,该方法将输出为类似于 2014-09-08T08:02:17-05:00 的“ISO 8601”标准。

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

【讨论】:

    【解决方案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+ 版本 (link),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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      • 2021-12-15
      • 2011-12-19
      相关资源
      最近更新 更多