Date.toLocaleDateString()在运行nodejs(v10.15.0)的Windows 10笔记本电脑上无法作为Discord.js机器人的服务器运行。它显示的是mm / dd / yyyy,而不是dd / mm / yyyy。
我将'en-GB'用作语言环境的第一个参数,并将第二个参数用于要实现的格式(dd / mm / yyyy)。在https://js.do/中,它显示为dd / mm / yyyy,但在我的笔记本电脑中却以mm / dd / yyyy表示,除了“ document.write”,它们都使用相同的代码,我使用了“ console.log”来显示结果。
let d1 = new Date();
let options = {
year: 'numeric',
month: '2-digit',
day: '2-digit'
};
document.write(d1.toLocaleString('en-GB', options)); // console.log in my laptop
我希望它是dd / mm / yyyy格式,因为它是“ en-GB”语言环境,而不是mm / dd / yyyy格式。
是什么问题?是因为有nodejs吗?还是js.do网站??如本线程所述:Date.toLocaleDateString() not working on Nodejs v10.14.2,但我认为问题略有不同。
答案 0 :(得分:2)
显然,默认情况下,nodejs仅包含here中所述的美国语言环境,因此采用mm / dd / yyyy格式。
在该问题中,我按照 targos 的建议安装了full-icu模块。
安装后,我运行了npm install
because of this,然后在命令行中看到了这一点:
For package.json:
{"scripts":{"start":"node --icu-data-dir=node_modules\\full-icu YOURAPP.js"}}
然后相应地编辑我的启动脚本,它会产生所需的dd / mm / yyyy结果。
非常感谢@quirimmo在我的问题评论中帮助我!
答案 1 :(得分:1)
我能够重现此问题,如果您的代码允许,请尝试dateformat。
In [423]: recs.__array_interface__
Out[423]:
{'data': (37584304, False),
'strides': None,
'descr': [('', '<i8')],
'typestr': '<i8',
'shape': (2, 2),
'version': 3}
In [424]: x.__array_interface__
Out[424]:
{'data': (37614336, False),
'strides': None,
'descr': [('', '<i8')],
'typestr': '<i8',
'shape': (2, 2),
'version': 3}
$ npm install dateformat