/**
* 将时间戳转换为 年-月-日 时:分:秒.毫秒格式的数据
* @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 中的一个字符串方法,用于在当前字符串的开头填充指定的字符串,直到达到指定的长度。如果当前字符串的长度已经等于或超过了指定的长度,则返回原字符串。
这个方法接受两个参数:
- targetLength(必需):当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回原字符串。
- 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() 来确保它们至少有两位数。