节点中的日期toLocaleDateString

时间:2013-02-09 23:46:24

标签: javascript node.js

当我在浏览器中使用toLocaleDateString时,它会返回

n = new Date()
n.toLocaleDateString()
"2/10/2013"

但在node.js格式完全不同

n = new Date()
> n.toLocaleDateString()
'Sunday, February 10, 2013'

如何在node.js中获取浏览器的格式(mm/dd/yy)?

4 个答案:

答案 0 :(得分:10)

对我来说,解决方案是为full-icu安装额外的模块node js full-icu-npm

在package.json之后插入:

{"scripts":{"start":"node --icu-data-dir=node_modules/full-icu YOURAPP.js"}}

在当前版本的Node.js中,v10.9.0为Internationalization Support。 要控制在Node.js中如何使用ICU,您可以配置编译期间可用的选项。 如果使用small-icu选项,则需要在运行时提供ICU数据:

  • NODE_ICU_DATA 环境变量:
env NODE_ICU_DATA=/some/directory node
  • - icu-data-dir CLI参数:node --icu-data-dir=/some/directory


答案 1 :(得分:6)

我还在node.JS中发现了这个问题。例如,在节点控制台中,键入

new Date().toLocaleDateString('en-GB')

它仍然显示美国格式。使用上面的Werner方法,您可以覆盖您的语言环境的默认Date.toLocaleDateString()行为:

Date.prototype.toLocaleDateString = function () {
    return `${this.getDate()}/${this.getMonth() + 1}/${this.getFullYear()}`;
};

答案 2 :(得分:-3)

在node.JS中

你无法获得浏览器的格式。 Node.JS在服务器端运行。

在客户端JS框架的浏览器中显示日期格式之前,您必须进行日期格式化。

答案 3 :(得分:-5)

Date.prototype.toLocaleDateString = function () {
  var d = new Date();
  return (d.getMonth() + 1) + "/" + d.getDate() + "/" + d.getFullYear();
};