0

0

JavaScript中获取可用时区名称列表

DDD

DDD

发布时间:2025-10-31 12:01:15

|

678人浏览过

|

来源于php中文网

原创

JavaScript中获取可用时区名称列表

本教程将介绍如何在javascript环境中获取一个标准的时区名称列表。针对从moment.js迁移到day.js后寻找时区列表方法的场景,我们将利用web api `intl.supportedvaluesof('timezone')` 提供一个无需外部库的解决方案,并详细说明其使用方法、输出格式及相关注意事项。

在开发涉及全球用户的应用程序时,经常需要提供一个时区选择器,或者根据用户所在时区显示时间。以往,一些流行的日期时间处理库如Moment.js提供了直接获取时区列表的功能。然而,当开发者转向更轻量级的库如Day.js时,可能会发现此类功能并非直接集成在核心库中。本文将介绍一种现代、标准且无需额外依赖的JavaScript方法来获取可用的时区名称列表。

使用 Intl.supportedValuesOf 获取时区列表

JavaScript的Intl对象提供了对国际化API的访问,其中包括了获取本地化相关信息的强大功能。Intl.supportedValuesOf()方法是其中一个非常有用的API,它允许我们查询给定类别的可用值。对于时区,我们可以使用'timeZone'作为参数来获取一个标准的时区名称列表。

以下代码展示了如何在浏览器控制台或其他JavaScript环境中执行此操作:

/**
 * 获取所有支持的时区名称列表
 * @returns {string[]} 一个包含所有IANA时区名称的数组
 */
function getTimeZoneNameList() {
  // 使用Intl.supportedValuesOf('timeZone')获取标准时区名称列表
  const timeZones = Intl.supportedValuesOf('timeZone');
  return timeZones;
}

// 在控制台打印所有时区名称
const zoneList = getTimeZoneNameList();
console.log("支持的时区名称列表:");
zoneList.forEach(zone => console.log(zone));

// 如果需要一个更紧凑的列表,可以根据需求进行过滤或分组
// 例如,只获取包含特定地区的时区
const specificRegions = zoneList.filter(zone => 
  zone.startsWith('America/') || zone.startsWith('Europe/')
);
console.log("\n部分地区时区示例:");
specificRegions.forEach(zone => console.log(zone));

代码解析:

立即学习Java免费学习笔记(深入)”;

  • Intl.supportedValuesOf('timeZone') 方法会返回一个字符串数组,其中每个字符串都代表一个标准的时区名称。
  • 这些时区名称遵循 IANA 时区数据库 命名约定(例如:"America/New_York", "Europe/London", "Asia/Shanghai")。
  • 此方法是浏览器原生的Web API,因此不需要引入任何第三方库即可使用。

输出格式与特点

Intl.supportedValuesOf('timeZone') 返回的列表包含了全球所有标准时区的完整名称。这些名称是唯一的,并且能够准确地表示一个地理区域及其所有历史和未来的夏令时(DST)规则。

动易拍卖程序
动易拍卖程序

功能与改进:后台新增功能:语言设置中增:繁体中文版,适合港澳台地区使用(英文版随后增加)页面广告中增:浮动文字广告,可以自己随心修改广告内容啊商品列表页面增:对商品名称可以将商品加粗,加粗加红显示,来推荐用户的商品增加邮件服务功能:对所有涉及到发送邮件的页面,都使用了邮件发送程序使程序更加的完善另外增加了对browse.asp页显示分类的管理更正了已知BUG

下载
  • 完整性: 列表非常全面,涵盖了全球范围内的所有主要时区。
  • 标准化: 采用的是国际上公认的IANA时区数据库命名规范。
  • 包含夏冬时制: 每个时区名称都隐式包含了其所在地区的夏令时(或冬令时)转换规则,无需额外处理。当使用这些名称配合日期时间库(如Day.js的dayjs-timezone插件)进行时间转换时,库会自动处理夏令时。
  • 非紧凑性: 原始列表可能包含数百个条目,对于某些应用场景可能显得过于冗长。用户可以根据实际需求对这个列表进行过滤或分组,例如只显示特定大陆或国家/地区的时区。

优势与注意事项

  1. 原生Web API,无需依赖: 最大的优势在于它是浏览器内置的功能,不需要安装任何额外的JavaScript库或插件。这有助于减小项目体积,并减少潜在的依赖冲突。

  2. 自动更新,包含夏冬时制: 浏览器或运行时环境会负责维护和更新其内部的时区数据。这意味着开发者无需手动更新时区数据,并且列表中的每个时区名称都已考虑了其对应的夏令时(DST)规则。

  3. 浏览器兼容性: Intl.supportedValuesOf 是一个相对较新的API(ES2020),但在现代浏览器(如Chrome 79+, Firefox 74+, Safari 13.1+, Edge 79+)中已得到广泛支持。在旧版浏览器中可能需要Polyfill。

  4. 与Day.js的关系: 值得注意的是,Day.js核心库本身并没有提供获取时区列表的功能。它主要专注于日期时间的解析、格式化和操作。如果你需要Day.js来处理特定时区的时间,通常会结合其官方的 dayjs-timezone 插件。Intl.supportedValuesOf('timeZone') 提供的时区名称列表,可以完美地作为 dayjs-timezone 插件的输入。例如:

    // 假设你已经安装并加载了 dayjs 和 dayjs-timezone 插件
    // import dayjs from 'dayjs';
    // import utc from 'dayjs/plugin/utc';
    // import timezone from 'dayjs/plugin/timezone';
    
    // dayjs.extend(utc);
    // dayjs.extend(timezone);
    
    const newYorkTimeZone = 'America/New_York';
    const nowInNewYork = dayjs().tz(newYorkTimeZone);
    console.log(`纽约当前时间:${nowInNewYork.format('YYYY-MM-DD HH:mm:ss Z')}`);

总结

尽管从Moment.js切换到Day.js后,直接获取时区列表的方式有所不同,但JavaScript提供了强大且原生的Intl.supportedValuesOf('timeZone')方法来解决这一问题。这个API不仅提供了完整的、标准化的时区名称列表,而且无需任何第三方依赖,并能自动处理夏令时规则。开发者可以利用此方法获取时区列表,并根据实际需求进行筛选和展示,再结合Day.js等日期时间库进行精确的时区时间处理。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

826

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

742

2023.11.06

edge是什么浏览器
edge是什么浏览器

Edge是一款由Microsoft开发的网页浏览器,是Windows 10操作系统中默认的浏览器,其目标是提供更快、更安全、更现代化的浏览器体验。本专题为大家提供edge浏览器相关的文章、下载、课程内容,供大家免费下载体验。

1407

2023.08.21

IE浏览器自动跳转EDGE如何恢复
IE浏览器自动跳转EDGE如何恢复

ie浏览器自动跳转edge的解决办法:1、更改默认浏览器设置;2、阻止edge浏览器的自动跳转;3、更改超链接的默认打开方式;4、禁用“快速网页查看器”;5、卸载edge浏览器;6、检查第三方插件或应用程序等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

381

2024.03.05

如何解决Edge打开但没有标题的问题
如何解决Edge打开但没有标题的问题

若 Microsoft Edge 浏览器打开后无标题(窗口空白或标题栏缺失),可尝试以下方法解决: 重启 Edge:关闭所有窗口,重新启动浏览器。 重置窗口布局:右击任务栏 Edge 图标 → 选择「最大化」或「还原」。 禁用扩展:进入 edge://extensions 临时关闭插件测试。 重置浏览器设置:前往 edge://settings/reset 恢复默认配置。 更新或重装 Edge:检查最新版本,或通过控制面板修复

927

2025.04.24

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

298

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

212

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1498

2023.10.24

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 4.2万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号