js时间戳转换日期格式 yyyy-mm-dd
JavaScript 时间戳转换为 yyyy-mm-dd 日期格式
在 JavaScript 中,将时间戳(timestamp)转换为 yyyy-mm-dd 格式的日期字符串有多种方法。下面我将介绍几种常用的方式,包括原生 JavaScript 和一些实用的函数封装。
方法一:使用原生 JavaScript Date 对象(推荐)
基本用法
// 假设时间戳为 1758354898 (单位:秒)
// 注意:JavaScript 的 Date 使用毫秒,所以如果是秒级时间戳需要乘以 1000var timestamp = 1758354898; // 秒级时间戳
var date = new Date(timestamp * 1000); // 转为毫秒// 获取年、月、日
var year = date.getFullYear();
var month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,要+1
var day = String(date.getDate()).padStart(2, '0');// 拼接成 yyyy-mm-dd 格式
var formattedDate = year + '-' + month + '-' + day;console.log(formattedDate); // 输出如:2025-09-20
说明:
new Date(timestamp * 1000):JavaScript 的 Date 构造函数接收的是毫秒级时间戳,而很多后端语言(如 PHP)默认给的是秒级,所以要 ×1000。
getFullYear():获取四位年份,如 2025。
getMonth():返回 0~11,所以要 +1,并且用 padStart(2, '0') 保证两位数,如 09。
getDate():返回 1~31,同样用 padStart(2, '0') 保证两位数,如 05。
方法二:封装成函数(推荐用于复用)
你可以将上述逻辑封装成一个函数,方便多处调用:
/*** 将时间戳(秒级)转换为 yyyy-mm-dd 格式* @param {number} timestamp - 秒级时间戳,如 1758354898* @returns {string} yyyy-mm-dd 格式的日期字符串*/
function formatTimestampToDate(timestamp) {var date = new Date(timestamp * 1000);var year = date.getFullYear();var month = String(date.getMonth() + 1).padStart(2, '0');var day = String(date.getDate()).padStart(2, '0');return year + '-' + month + '-' + day;
}// 使用示例
var timestamp = 1758354898;
var formattedDate = formatTimestampToDate(timestamp);
console.log(formattedDate); // 输出:2025-09-20