Sar*_*ran 4 javascript remote-debugging react-native
<Text style={s.date}>{ new Date(this.props.order.ordered_at).toLocaleDateString('en-US', { day: '2-digit', month: 'short' }) }</Text>
<Text style={s.time}>({ new Date(this.props.order.ordered_at).toLocaleTimeString('en-US', { hour: '2-digit', minute:'2-digit', hour12: true }) })</Text>
Run Code Online (Sandbox Code Playgroud)
JS远程调试关闭时的输出
02/13/17 (23:51:31)
02/13/17 (23:48:07)
Run Code Online (Sandbox Code Playgroud)
JS远程调试打开时的输出
Feb 13 (11:51 PM)
Feb 13 (11:48 PM)
Run Code Online (Sandbox Code Playgroud)
造成这种情况的原因是什么?如何解决?
import moment from 'moment';
<Text style={s.date}>{ moment(new Date(this.props.order.ordered_at)).format('ll') }</Text>
<Text style={s.time}>{ moment(new Date(this.props.order.ordered_at)).format('LT') }</Text>
Run Code Online (Sandbox Code Playgroud)
将持续屈服
Feb 13, 2017 (11:51 PM)
Feb 13, 2017 (11:48 PM)
Run Code Online (Sandbox Code Playgroud)
为什么不通常的Date()方式工作?
JavaScript运行 时使用React Native时,您将在两个环境中运行JavaScript代码:
- 在iOS模拟器和设备上,Android模拟器和设备React Native使用JavaScriptCore,它是为Safari提供动力的JavaScript引擎.在iOS上,由于iOS应用程序中缺少可写的可执行内存,因此JSC不使用JIT.
- 使用Chrome调试时,它会运行Chrome中的所有JavaScript代码,并通过WebSocket与本机代码进行通信.所以你使用的是V8.
虽然两种环境非常相似,但最终可能会出现一些不一致的情况.我们将来可能会尝试使用其他JS引擎,因此最好避免依赖任何运行时的细节.
因此,正如评论中所提到的,最好是使用momentJS而不是盲目地依赖于环境的JS,这会导致文档中提到的不一致
| 归档时间: |
|
| 查看次数: |
1501 次 |
| 最近记录: |