Node react-intl 中的本地日期
Local Dates in Node react-intl
我正在尝试使用 react-intl 在 React 应用程序上设置 i18n。该应用程序是通用呈现的(因此在使用节点的客户端和服务器上)。我所拥有的一个基本示例是:
import React, {Component} from 'react';
import ReactDOM from 'react-dom';
import {IntlProvider, FormattedDate} from 'react-intl';
class App extends Component {
const date = new Date();
render() {
return (
<div>
<FormattedDate value={date} />
</div>
);
}
}
ReactDOM.render(
<IntlProvider locale="en-GB">
<App />
</IntlProvider>,
document.getElementById('container')
);
服务器呈现的格式化日期与客户端呈现的日期不同,导致反应校验和无效并丢弃服务器呈现。服务器发回日期的 en-US 语言环境,浏览器呈现 en-GB
我在服务器和浏览器中都尝试了这个小测试:
var date = new Date();
console.log(date.toLocaleDateString('en-GB'));
console.log(date.toLocaleDateString('en-US'));
在浏览器中记录:
“13/04/2016”
“2016 年 4 月 13 日”
这是我所期望的,但在节点中我得到了
“2016 年 4 月 13 日”
“2016 年 4 月 13 日”
这可能是服务器呈现的反应代码版本与浏览器版本不同的原因?
我只是猜测这就是问题所在。 Node 版本为 v5.4.1
因此,如果有人遇到同样的问题,我就是这样做的。默认情况下,Node 仅支持 en 语言环境,但这实际上不是 en-GB 语言环境,而是 en-US 版本。你可以用你想要的 icu 重建节点 - https://github.com/nodejs/node/wiki/Intl or alternativly I installed the full-icu package from npm https://www.npmjs.com/package/full-icu
也可以使用 Intl
包填充 node.js Intl。参见 https://github.com/yahoo/intl-locales-supported
我正在尝试使用 react-intl 在 React 应用程序上设置 i18n。该应用程序是通用呈现的(因此在使用节点的客户端和服务器上)。我所拥有的一个基本示例是:
import React, {Component} from 'react';
import ReactDOM from 'react-dom';
import {IntlProvider, FormattedDate} from 'react-intl';
class App extends Component {
const date = new Date();
render() {
return (
<div>
<FormattedDate value={date} />
</div>
);
}
}
ReactDOM.render(
<IntlProvider locale="en-GB">
<App />
</IntlProvider>,
document.getElementById('container')
);
服务器呈现的格式化日期与客户端呈现的日期不同,导致反应校验和无效并丢弃服务器呈现。服务器发回日期的 en-US 语言环境,浏览器呈现 en-GB
我在服务器和浏览器中都尝试了这个小测试:
var date = new Date();
console.log(date.toLocaleDateString('en-GB'));
console.log(date.toLocaleDateString('en-US'));
在浏览器中记录:
“13/04/2016” “2016 年 4 月 13 日”
这是我所期望的,但在节点中我得到了
“2016 年 4 月 13 日” “2016 年 4 月 13 日”
这可能是服务器呈现的反应代码版本与浏览器版本不同的原因?
我只是猜测这就是问题所在。 Node 版本为 v5.4.1
因此,如果有人遇到同样的问题,我就是这样做的。默认情况下,Node 仅支持 en 语言环境,但这实际上不是 en-GB 语言环境,而是 en-US 版本。你可以用你想要的 icu 重建节点 - https://github.com/nodejs/node/wiki/Intl or alternativly I installed the full-icu package from npm https://www.npmjs.com/package/full-icu
也可以使用 Intl
包填充 node.js Intl。参见 https://github.com/yahoo/intl-locales-supported