当前位置: 首页 > news >正文

【前端】时间相关知识点汇总

一、基本概念

1.1 UTC(Coordinated Universal Time,协调世界时)

  • 全球统一的时间标准,不受时区影响。
  • 以原子时钟为基础,偶尔会加“闰秒”来校正地球自转误差。
  • 用于存储、通信和时间比较的基准时间。

1.2 GMT(Greenwich Mean Time,格林威治标准时间)

  • 历史上的标准时间,与 UTC 基本等同。
  • 实际应用中 GMT ≈ UTC。

1.3 时区(Time Zone)

  • 地球划分为 24 个时区,每个时区相差 1 小时。
  • 中国标准时间(CST/北京时间):UTC+8。
  • 其他常见:纽约(美国东部时间,UTC-5/UTC-4)、伦敦(UTC+0/UTC+1,含夏令时)。

1.4 夏令时(Daylight Saving Time, DST)

  • 某些国家/地区在夏季人为将时间拨快一小时,目的是节约能源。
  • 中国大陆目前不实行夏令时。

二、时间戳(Timestamp)

2.1 定义

  • 指自 1970 年 1 月 1 日 00:00:00 UTC 起经过的时间。
  • 常用单位有秒(10位)毫秒(13位)

2.2 获取时间戳(JavaScript)

// 毫秒级时间戳(13位)
const msTimestamp = Date.now();
const msTimestamp2 = new Date().getTime();// 秒级时间戳(10位)
const sTimestamp = Math.floor(Date.now() / 1000);

三、时间格式化与转换

3.1 常见格式

  • ISO 8601(国际标准):2024-06-28T08:00:00Z
  • 本地字符串:2024-06-28 16:00:00
  • 时间戳:1719552000000

3.2 JavaScript 示例

const now = new Date();// ISO 格式(UTC时间)
console.log(now.toISOString()); // 2024-06-28T08:00:00.000Z// 本地时间字符串
console.log(now.toString()); // Fri Jun 28 2024 16:00:00 GMT+0800 (中国标准时间)// 转为本地可读格式(无秒/带秒等可选)
console.log(now.toLocaleString()); // 2024/6/28 16:00:00

四、时区转换

4.1 本地时间与UTC互转

  • 本地时间 = UTC 时间 + 时区偏移(如中国为 +8 小时)
  • JavaScript 中,Date对象存储的是本地时间,toISOString()输出的是 UTC
const now = new Date();
// 获取 UTC 年月日时分秒
console.log(now.getUTCFullYear(), now.getUTCMonth() + 1, now.getUTCDate(), now.getUTCHours());

4.2 常见库

  • moment.js(已停止维护)
  • dayjs
  • date-fns
  • luxon
// dayjs 示例
import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc';
import timezone from 'dayjs/plugin/timezone';
dayjs.extend(utc);
dayjs.extend(timezone);const beijing = dayjs().tz('Asia/Shanghai').format(); // 北京时间
const utcTime = dayjs().utc().format(); // UTC 时间

五、前端开发中时间的常见场景

  1. 存储与通信:统一用 UTC 时间戳保存,前端/后端都能准确还原。
  2. 显示:根据用户本地时区格式化显示。
  3. 日志与监控:建议统一用 UTC,便于跨时区对比分析。
  4. 定时/倒计时:用时间戳做时间差计算,避免时区和夏令时影响。

六、常见问题与误区

  • 千万不要直接用本地时间做跨系统时间对比。
  • 日期字符串解析要注意时区,如2024-06-28T08:00:00Z表示UTC,2024-06-28 08:00:00默认按本地时区解析。
  • JavaScript 的 Date 对象与本地时区相关,但也可用 UTC 方法(如 getUTCFullYear 等)。

七、常用时间格式与代码总结

需求代码示例说明
当前毫秒时间戳Date.now()1970以来的毫秒数
当前秒时间戳Math.floor(Date.now() / 1000)1970以来的秒数
ISO时间字符串new Date().toISOString()UTC标准格式
本地时间字符串new Date().toLocaleString()当前时区格式
UTC转本地new Date(Date.UTC(2024, 5, 28, 8, 0, 0))注意月份0-11,需+1
本地转UTCdate.toISOString()

八、参考资料

  • MDN JavaScript Date
  • 世界标准时间(UTC)
  • 时区列表

http://www.dtcms.com/a/546958.html

相关文章:

  • 建设工程消防设计备案网站网站建设公司如何做大
  • wordpress h1美化东莞公司网站做优化
  • 做写字楼用哪个网站更好WordPress 有趣插件
  • 网站后台是怎么做的网站设计的资质叫什么
  • mooc 网站建设情况制作营销网站
  • 做游戏ppt下载网站有哪些内容网站开发维护需要哪些人
  • 缺少自动化工具会如何降低效率
  • 网站设计 注意深圳福田住房和建设局网站
  • 快速入门Vue3,插值、动态绑定和避坑技巧你都搞懂了吗?
  • 上海企业网站制作多少钱画册印刷价格
  • 微信朋友圈网站广告怎么做wordpress设计主题
  • 德尔普的网站建设的价格官方网站开发
  • SMB 攻击(Server Message Block Attack)是什么?
  • 江苏省建设厅网站官网网站建设公司电话销售
  • 网页上做ppt的网站深圳制作网站多少费用
  • 西安外贸网站开发阜沙网站建设
  • 晋中工商局网站开发区分局成都91获客营销中心
  • 建企业网站的步骤wordpress 黑糖
  • 淄博网站建设详细策划mvc网站开发实例
  • Ubuntu24.04 无法读取 U盘
  • 佛山市品牌网站建设公司wordpress lensnews
  • 阿里云的网站阿里云域名注册入口官网
  • Keepalived双机热备全解析
  • auxer可以做网站嘛塘厦理工学校
  • 用c 做毕业设计的音乐网站网络服务平台标书
  • 企智网络网站建设公司有网站建设的虚拟主机管理系统
  • 网投网站如何建设wordpress会员设置
  • 智能电梯管理系统(IC卡梯控系统)是一种基于智能技术的电梯控制解决方案,通过权限管理提升安全性与效率。以下是详细解析:
  • wordpress详情页选择模板北京seo设计公司
  • 商城网站建设最好的公司青白江建设局网站