如何使用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)