在 React Native 中格式化日期字符串

新手上路,请多包涵

我正在尝试在 React Native 中格式化日期字符串。

例如:2016-01-04 10:34:23

以下是我正在使用的代码。

 var date = new Date("2016-01-04 10:34:23");
console.log(date);

我的问题是,当我在 iPhone 6S 上模拟这个时,它会打印 Mon Jan 04 2016 10:34:23 GMT+0530 (IST) 没有任何问题。但如果我尝试使用 iPhone 5S,它不会打印任何内容。如果您尝试使用 date.getMonth() 之类的方法来获取月份,它将打印 "NaN"

为什么是这样?解决方法是什么?

原文由 Nimila Hiranya 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 978
2 个回答

React Native 的美妙之处在于它支持许多 JS 库,例如 Moment.js。使用 moment.js 将是处理日期/时间的更好/更简单的方法,而不是从头开始编码

只需在终端中运行它( yarn add moment 如果使用 React 的内置包管理器也可以):

 npm install moment --save

在您的 React Native js 页面中:

 import Moment from 'moment';

render(){
    Moment.locale('en');
    var dt = '2016-05-02T00:00:00';
    return(<View> {Moment(dt).format('d MMM')} </View>) //basically you can do all sorts of the formatting and others
}

您可以在此处查看 moment.js 官方文档 https://momentjs.com/docs/

原文由 Joe Lu 发布,翻译遵循 CC BY-SA 4.0 许可协议

Date 构造函数对其允许的内容非常挑剔。你传入的字符串必须是 Date.parse() 支持的,如果不支持则返回 NaN。如果这些格式偏离官方 ISO 文档,不同版本的 JavaScript 确实支持不同的格式。

有关支持的内容,请参见此处的示例: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

原文由 John Shammas 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题