JavaScript时间戳与时间的转化常用方法

2025-05-09 01:50

本文主要是介绍JavaScript时间戳与时间的转化常用方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《JavaScript时间戳与时间的转化常用方法》在JavaScript中,时间戳(Timestamp)通常指Unix时间戳,即从1970年1月1日00:00:00UTC到某个时间点经过的毫秒数,下面...

JavaScript 中,时间戳(Timestamp)通常指 Unix 时间戳,即从 1970年1月1日 00:00:00 UTC 到某个时间点经过的 毫秒数(注意:其他语言如 python 可能使用秒,但 javascript 默认用毫秒)。以下是时间戳与时间格式相互转换的常用方法:

1. 获取当前时间戳

// 方法1:Date.now()
const timestamp1 = Date.now();
// 方法2:new Date().getTime()
const timestamp2 = new Date().getTime();
// 方法3:+new Date()
const timestamp3 = +new Date();

2. 时间戳 → 时间对象

用时间戳生成 Date 对象后,可提取具体时间信息:

const timestamp = 1696147200000; // 示例时间戳(2023-10-01 00:00:00 UTC)
const date = new Date(timestamp);
// 提取时间RhONXUjga信息(本地时区)
const year = date.getFullYear();     // 2023
const month = date.getMonth() + 1;   // 10(注意月份从0开始,需+1)
const day = date.getDate();          // 1
const hours = date.getHours();       // 8(假设时区为UTC+8)
const minutes = date.getMinutes();   // 0
const seconds = date.getSeconds();   // 0
// 提取UTC时间信息
const utcHours = date.getUTCHours(); // 0(UTC时间)

3. 时间戳 → 格式化字符串

将 Date 对象格式化为易读的字符串:

// 方法1:使用内置方法(本地时区)
const localDateStr = date.toLocaleDateString(); // "2023/10/1"
const localTimeStr = date.toLocaleTimeString(); // "08:00:00"
const localStr = date.toLocaleString();        // "2023/10/1 08:00:00"
// 方法2:手动拼接(灵活定制)
const formattedTime = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')} ${hours}:${minutes}:${seconds}`;
// "2023-10-01 08:00:00"
// 方法3:转成ISO标准格式(UTC时间)
const isoString = date.toISOString(); // "2023-10-01T00:00:00.000Z"

4. 时间字符串 → 时间戳

将日期字符串解析为时间戳:

// 方法1:Date.parse()(需符合标准格式)
const timestamp4 = Date.parse('2023-10-01T00:00:00Z'); // 1696147200000(UTC时间)
// 方法2:new Date().getTime()
const dateStr = '2023-10-01 08:00:00'; // 假设本地时区为UTC+8
const timestamp5 = new Date(dateStr).getTime(); // 1696147200000(需注意时区问题)
// 注意:非标准格式可能导致android解析失败,建议使用ISO格式(YYYY-MM-DDTHH:mm:ssZ)

5. 常见场景示例

场景1:计算时间差

const start = Date.now();
// ...执行某些操作
const end = Date.now();
const duration = end - start; // 毫秒数

场景2:倒计时功能

www.chinasem.cn
function formatCountdown(timestamp) {
  const now = Date.now();
  const diff = timestamp - now;
  const days = Math.floor(diff / (1000 * 60 * 编程60 * 24));
  const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  return `${days}天 ${hours}小时`;
}

场景3:UTC与本地时间互转

// UTC时间 → 本地时间
const utcDate = new Date('2023-10-01T00:00:00Z');
const localHours = utcDate.getHours(); // 本地时区的小时数(如UTC+8得到8)
// 本地时间 → UTC时间戳
const localDate = new Date(2023, 9, 1, 8, 0, 0); // 2023-10-01 08:00:00(本地时间)
const utcTimestamp = Date.UTC(2023, 9, 1, 0, 0, 0); // 1696147200000

注意事项

时区问题

  • new Date() 和 Date.parse() 默认使用本地时区,而 toISOString() 和 Date.UTC() 使用 UTC 时区。
  • 跨时区应用建议统一使用 UTC 时间。

时间戳单位

  • JavaScript 使用 毫秒,与其他语言(如 Python 的秒)转换时需注意单位换算:
const seconds = Math.floor(timestamp / 1000); // 毫秒转秒
const milliseconds = seconds * 1000;          // 秒转毫秒

浏览器兼容性

  • 避免使用非标准日期格式(如 '2023-10-01' 不带时间部分),不同浏览器解析结果可能不一致。

到此这篇关于JavaScript时间戳与时间的转化常用方法的文章就介绍到这了,更多相关js时间戳与时间的转化内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于JavaScript时间戳与时间的转化常用方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1154526

相关文章

MyBatis-Plus 与 Spring Boot 集成原理实战示例

《MyBatis-Plus与SpringBoot集成原理实战示例》MyBatis-Plus通过自动配置与核心组件集成SpringBoot实现零配置,提供分页、逻辑删除等插件化功能,增强MyBa... 目录 一、MyBATis-Plus 简介 二、集成方式(Spring Boot)1. 引入依赖 三、核心机制

Java高效实现Word转PDF的完整指南

《Java高效实现Word转PDF的完整指南》这篇文章主要为大家详细介绍了如何用Spire.DocforJava库实现Word到PDF文档的快速转换,并解析其转换选项的灵活配置技巧,希望对大家有所帮助... 目录方法一:三步实现核心功能方法二:高级选项配置性能优化建议方法补充ASPose 实现方案Libre

springboot整合mqtt的步骤示例详解

《springboot整合mqtt的步骤示例详解》MQTT(MessageQueuingTelemetryTransport)是一种轻量级的消息传输协议,适用于物联网设备之间的通信,本文介绍Sprin... 目录1、引入依赖包2、yml配置3、创建配置4、自定义注解6、使用示例使用场景:mqtt可用于消息发

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成

Java 中编码与解码的具体实现方法

《Java中编码与解码的具体实现方法》在Java中,字符编码与解码是处理数据的重要组成部分,正确的编码和解码可以确保字符数据在存储、传输、读取时不会出现乱码,本文将详细介绍Java中字符编码与解码的... 目录Java 中编码与解码的实现详解1. 什么是字符编码与解码?1.1 字符编码(Encoding)1

Python Flask实现定时任务的不同方法详解

《PythonFlask实现定时任务的不同方法详解》在Flask中实现定时任务,最常用的方法是使用APScheduler库,本文将提供一个完整的解决方案,有需要的小伙伴可以跟随小编一起学习一下... 目录完js整实现方案代码解释1. 依赖安装2. 核心组件3. 任务类型4. 任务管理5. 持久化存储生产环境

详解Java中三种状态机实现方式来优雅消灭 if-else 嵌套

《详解Java中三种状态机实现方式来优雅消灭if-else嵌套》这篇文章主要为大家详细介绍了Java中三种状态机实现方式从而优雅消灭if-else嵌套,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录1. 前言2. 复现传统if-else实现的业务场景问题3. 用状态机模式改造3.1 定义状态接口3

Python批量替换多个Word文档的多个关键字的方法

《Python批量替换多个Word文档的多个关键字的方法》有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Py... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想

Java集合中的链表与结构详解

《Java集合中的链表与结构详解》链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序的通过链表中的引用链接次序实现,文章对比ArrayList与LinkedList的结构差异,详细讲解了链表... 目录一、链表概念与结构二、当向单链表的实现2.1 准备工作2.2 初始化链表2.3 打印数据、链表长

Python如何调用另一个类的方法和属性

《Python如何调用另一个类的方法和属性》在Python面向对象编程中,类与类之间的交互是非常常见的场景,本文将详细介绍在Python中一个类如何调用另一个类的方法和属性,大家可以根据需要进行选择... 目录一、前言二、基本调用方式通过实例化调用通过类继承调用三、高级调用方式通过组合方式调用通过类方法/静