当前位置:首页 > JavaScript

js实现时间转换

2026-04-04 19:20:51JavaScript

时间戳转日期字符串

使用 Date 对象和内置方法转换时间戳为可读格式:

const timestamp = 1625097600000;
const date = new Date(timestamp);
const formattedDate = date.toLocaleString(); // 本地化日期时间格式
// 或自定义格式
const customFormat = `${date.getFullYear()}-${(date.getMonth()+1).toString().padStart(2,'0')}-${date.getDate().toString().padStart(2,'0')}`;

日期字符串转时间戳

通过 Date.parse() 或构造函数获取时间戳:

js实现时间转换

const dateStr = '2023-06-30';
const timestamp1 = Date.parse(dateStr);
const timestamp2 = new Date(dateStr).getTime();

相对时间计算

计算时间差并转换为人类可读格式:

function formatRelativeTime(timestamp) {
  const now = Date.now();
  const diff = now - timestamp;
  const minute = 60 * 1000;
  const hour = minute * 60;

  if (diff < minute) return '刚刚';
  if (diff < hour) return `${Math.floor(diff/minute)}分钟前`;
  return `${Math.floor(diff/hour)}小时前`;
}

时区转换

使用 toLocaleString 的选项参数处理时区:

js实现时间转换

const date = new Date();
const options = {
  timeZone: 'Asia/Shanghai',
  year: 'numeric',
  month: '2-digit',
  day: '2-digit'
};
const chinaTime = date.toLocaleString('zh-CN', options);

第三方库推荐

对于复杂的时间操作,推荐使用以下库:

  • moment.js(已停止维护但广泛使用)
  • date-fns(模块化轻量方案)
  • day.js(moment.js的现代替代品)
// day.js示例
import dayjs from 'dayjs';
dayjs().format('YYYY-MM-DD HH:mm:ss');
dayjs(1625097600000).fromNow();

性能优化技巧

处理大量时间转换时:

  • 避免在循环中重复创建 Date 对象
  • 对频繁使用的格式进行缓存
  • 使用整数运算代替字符串操作

标签: 时间js
分享给朋友:

相关文章

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…