首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JavaScript将办公时间转换为本地时间

使用JavaScript将办公时间转换为本地时间
EN

Stack Overflow用户
提问于 2010-07-17 17:52:19
回答 1查看 781关注 0票数 5

如何使用JavaScript将这样的消息添加到网页:

我们的办公时间是晚上9点到下午5点(09:00 - 17:00)。 在您的时区,是WWxx - YYzz (AA:00 - BB:00)

其中:

  • "WW“和"YY”转换为“小时”的适当值(在12小时时钟上)。
  • "xx“和"zz”被转换为"am“或"pm”。
  • "AA“和"BB”转换为“小时”的适当值(在24小时时钟上)。

所以..。最后输出的一个例子是:

我们的办公时间是晚上9点到下午5点(09:00 - 17:00)。 在您的时区,是上午12时至上午8时(00:00-08:00)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-17 21:32:24

JavaScript提供了一个日期对象上的toLocaleTimeString方法,您可以使用该方法根据用户的区域设置来格式化时间。但是,这也存在这样的问题,即对于您的需要来说过于具体,因为它将在使用它的地方显示全职时间,包括小时、分钟、秒,以及可选的AM/PM指示符。

代码语言:javascript
复制
06:42:12 PM // 12 hour
18:42:12    // 24 hour

请注意,您没有显示翻译的本地时间的分钟,这可能是一个问题,因为9点对您来说,可能是下午4:30对某人。以下是您列出的修改后的解决方案。

代码语言:javascript
复制
Our office hours are 9:00am - 5:00pm (09:00 - 17:00)
In your timezone, that's 07:30am - 3:30pm (07:30 - 15:30).

你已经知道你当地时间了。若要获取网站访问者的本地时间,请获取unix时间戳,用于您的办公室在任何一天开始或关闭时使用。假设那些时间戳是:

代码语言:javascript
复制
1279401823511 // start
1279430623511 // end

只需使用这些时间创建一个date对象,然后为用户格式化时间。

代码语言:javascript
复制
var open = new Date(1279401823511);
var close = new Date(1279430623511);

编写一个函数来获得12/24小时格式的日期是很简单的。看这个作为参考。我将使用来自toStringDate.JS函数,因为它使生活变得简单一些。

代码语言:javascript
复制
var localTime = "In your timezone, that's {a} - {b} ({c} - {d})";
var map = {
    '{a}': open.toString('h:mmtt'),
    '{b}': close.toString('h:mmtt'),
    '{c}': open.toString('HH:mm'),
    '{d}': close.toString('HH:mm')
};
for(var p in map) {
    localTime = localTime.replace(p, map[p]);
}
console.log(localTime); 
"In your timezone, that's 2:23PM - 10:23PM (14:23 - 22:23)    
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3272609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档