Javascript Node JS toLocaleTimeString在不同的环境中表现有趣服务器与笔记本电脑

Javascript Node JS toLocaleTimeString在不同的环境中表现有趣服务器与笔记本电脑,javascript,node.js,datetime,Javascript,Node.js,Datetime,所以,在我的笔记本电脑MacBookPro上,我打开bash,点击节点来处理一些日期对象 我得到的答复是: $node > var d = new Date(); Sat Oct 03 2015 03:48:41 GMT-0700 (PDT) > d.toLocaleTimeString(); '3:48:41 AM' > d.toLocaleTimeString('en-US', { hour: '2-digit', minute:'2-digit' }); '3:48 AM

所以,在我的笔记本电脑MacBookPro上,我打开bash,点击节点来处理一些日期对象

我得到的答复是:

$node
> var d = new Date();
Sat Oct 03 2015 03:48:41 GMT-0700 (PDT)
> d.toLocaleTimeString();
'3:48:41 AM'
> d.toLocaleTimeString('en-US', { hour: '2-digit', minute:'2-digit' });
'3:48 AM'
所以这里我得到了我需要的准确答案

现在,当我在服务器操作系统上执行此操作时,我得到了不同的响应

> var d = new Date();
undefined
> d.toLocaleTimeString();
'03:13:19'
> d.toLocaleTimeString('en-US');
'03:13:19'
> d.toLocaleTimeString('en-US', {hour12:true});
'03:13:19'
> d.toLocaleTimeString('en-US', { hour: '2-digit', minute:'2-digit' });
'03:13:19'
>FML

有人能解释一下为什么它不能在我的服务器上工作,以及是否有办法修复它吗

看起来toLocaleTimeString与服务器的配置方式不兼容

首先,检查服务器中的时区。看

另一件有帮助的事情是使用一个库式的时刻,使它变得简单和格式一致:

var moment = require('moment');
console.log(moment().format('MMMM Do YYYY, h:mm:ss a'));

相同的节点版本?哪个版本?在服务器v0.10.36笔记本电脑v4.0.0上,如果在那里使用v0.10.36,您的笔记本电脑会得到相同的结果吗?date命令在两个系统上都会返回合理的结果吗?我不认为它是node的版本,尽管我现在正在将其更新为4.0.0,您可以看到上面我得到的两个不同响应