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

前端之家收集整理的这篇文章主要介绍了使用JavaScript将办公时间转换为当地时间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

Our office hours are 9am – 5pm (09:00 – 17:00) PST.

In your timezone,that’s WWxx – YYzz (AA:00 – BB:00).

哪里:

>“WW”和“YY”将转换为“小时”(12小时制)的正确值.
>“xx”和“zz”被转换为“am”或“pm”.
>“AA”和“BB”被转换为“小时”的适当值(24小时制).

所以…最终输出的一个例子是:

Our office hours are 9am – 5pm (09:00 – 17:00) PST.

In your timezone,that’s 12am – 8am (00:00 – 08:00).

最佳答案
JavaScript在日期对象上提供了一个toLocaleTimeString方法,您可以使用该方法根据用户的语言环境设置时间格式.然而,这会遇到过于特定于您的需求的问题,因为它会在使用它的地方显示包括小时,分钟,秒和AM / PM指示符的全部时间.

06:42:12 PM // 12 hour
18:42:12    // 24 hour

请注意,您没有显示翻译的当地时间的分钟数,这可能是一个问题因为上午9点,您可能是下午4:30.这是针对您列出的内容修改后的解决方案.

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时间戳.假设这些时间戳是:

1279401823511 // start
1279430623511 // end

只需使用这些时间创建日期对象,然后格式化用户的时间.

var open = new Date(1279401823511);
var close = new Date(1279430623511);

编写函数以12/24小时格式获取日期很简单. See this作为参考.我将使用Date.JS的toString函数,因为它使生活更容易一些.

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)    

猜你在找的JavaScript相关文章