js 时间格式转换 时间戳转换为【年-月-日 时:分:秒.毫秒】格式

216 阅读2分钟
/**
 * 将时间戳转换为 年-月-日 时:分:秒.毫秒格式的数据
 * @param {*} timestamp  时间戳
 * @returns 年-月-日 时:分:秒.毫秒
 */
function formatTimestamp(timestamp) {  
    const date = new Date(timestamp);  
  
    // 获取年、月、日、时、分、秒、毫秒  
    const year = date.getFullYear();  
    const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的  
    const day = String(date.getDate()).padStart(2, '0');  
    const hours = String(date.getHours()).padStart(2, '0');  
    const minutes = String(date.getMinutes()).padStart(2, '0');  
    const seconds = String(date.getSeconds()).padStart(2, '0');  
    const milliseconds = String(date.getMilliseconds()).padStart(3, '0'); // 毫秒数需要三位  
  
    // 拼接成目标格式  
    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`;  
}  
  
// 示例时间戳(毫秒)  
const timestamp = 1719927790708; // 例如,2024-07-02T13:43:10.708Z
  
// 调用函数并打印结果  
console.log(formatTimestamp(timestamp));  
// 输出:2024-07-02 21:43:10.708

其中padStart方法:

padStart() 是 JavaScript 中的一个字符串方法,用于在当前字符串的开头填充指定的字符串,直到达到指定的长度。如果当前字符串的长度已经等于或超过了指定的长度,则返回原字符串。

这个方法接受两个参数:

  1. targetLength(必需):当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回原字符串。
  2. padString(可选):填充字符串。如果字符串太长,会被截断,只保留最左侧的部分以填满所需长度。如果省略此参数,则默认使用空格填充。

padStart() 方法非常有用,特别是在格式化数字、日期和时间时,确保字符串具有统一的长度。

下面是一些使用 padStart() 方法的例子:

	console.log('5'.padStart(3, '0')); // 输出 "005"  

	console.log('12'.padStart(5, 'ab')); // 输出 "abab12"(注意:'ab'被截断为'a')  

	console.log('Hello'.padStart(10, ' ')); // 输出 "     Hello"  

	console.log('Hello'.padStart(4)); // 输出 "Hello"(因为'Hello'的长度已经大于或等于4)

在日期和时间的格式化中,padStart() 可以用来确保月份、日期、小时、分钟、秒和毫秒等部分始终有固定的位数,这对于保持输出的一致性非常有帮助。例如,在上面的日期时间格式化示例中,月份、日期、小时、分钟、秒和毫秒都使用了 padStart() 来确保它们至少有两位数。