【问题标题】:How do I convert a new Date() into the client's time?如何将 new Date() 转换为客户的时间?
【发布时间】:2013-11-18 02:04:11
【问题描述】:

我正在努力

date = new Date()

然后从客户端把它变成当地时间,我该怎么做呢?

我需要这种格式的日期 Day[Mon,Tues, etc.], Day of the month[18], Month[Nov,etc.], Year, 然后是 24 小时格式或 12 小时格式的时间,秒就可以了。

我尝试过使用 getTimezoneOffset(),但不知道如何使用它。

【问题讨论】:

  • 在浏览器中运行时,new Date 是基于用户设备时间设置的客户端时间。需要更详细地说明您要做什么
  • @charlietfl 我以为它来自 UTC...有趣..

标签: javascript date time


【解决方案1】:

JavaScript 中的日期应始终采用客户端计算机的格式。

如果toLocaleDateString 不适合你,我推荐Moment.js

使用toLocaleDateString

console.log(new Date().toLocaleDateString());

使用 Moment.js:

console.log(moment().format('llll'));

【讨论】:

  • 我认为您的意思是 date.toLocaleString(),更不用说您的 toLocaleDateString() 返回一个没有方法...但是使用 date.toLocaleDateString() 适用于日期...我我想我会尝试框架工作,您可能想查看帖子。
  • @Loper324 date.now() 返回一个数字版本,而不是导致 没有方法 错误的日期对象。我已经更新了答案
【解决方案2】:

通过“来自客户端的本地时间”,我假设您的服务器从 GMT-0 返回某个时间,而您的客户端位于 GMT-3。

了解您的服务器时区后,您可以使用 jsTimezoneDetect (http://pellepim.bitbucket.org/jstz/) 做一些计算。

关于“JavaScript 中的日期应始终采用客户端计算机的格式”这句话,这是假设您在客户端使用 Javascript,而实际上,您可以在服务器(节点)上使用它.

顺便说一句,当您说“我正在尝试获取 date = new Date()”时,我假设您正在使用 nodejs 在服务器上执行此操作,否则,jasonscript 和 Loper324 都是正确的,您已经在客户端,以便 Date 将在客户端的时区中。还是您指的只是格式?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 2014-12-10
    • 2016-05-03
    相关资源
    最近更新 更多