【发布时间】:2018-04-19 14:46:19
【问题描述】:
我正在从服务器获取时间戳
const date = 1420070399999
在控制台中产生:
新日期(日期)=> 2014 年 12 月 31 日星期三 23:59:59 GMT+0000 (UTC)
然后对其应用以下排列(这里moment 是moment@2.22.1 和intl 是使用injectIntl 来自react-intl 包` 的属性):
const momentSimple = moment.utc(date);
const momentFormatted = momentSimple.format(dateFormat);
const defaultFormatSimple = intl.formatDate(momentSimple);
const defaultFormatFormatted = intl.formatDate(momentFormatted);
const formattedFormatSimple = intl.formatDate(momentSimple, { year: 'numeric', month: 'long' });
const formattedFormatFormatted = intl.formatDate(momentFormatted, { year: 'numeric', month: 'long' });
当我的计算机时区设置为 美国托莱多(中美洲时间)时,这些变量(从第二个开始,不包括第一个)具有以下值:
"December 2014"
"12/31/2014"
"11/30/2014"
"December 2014"
"November 2014"
但是当我切换到日本东京时,我得到了这个:
"December 2014"
"1/1/2015"
"12/1/2014"
"January 2015"
"December 2014"
如您所见,托莱多有 12 月/11 月,东京有 1 月/12 月。
为什么会这样?
【问题讨论】:
标签: javascript reactjs internationalization momentjs react-intl