javascript时间转换成标准"yyyy-MM-dd HH:mm:ss"格式的函数 代码最短 "yyyy-MM-dd HH:mm:ss"
时间: 2023-07-21 21:22:23 浏览: 178
以下是一个将JavaScript时间戳转换为标准日期格式(yyyy-MM-dd HH:mm:ss)的函数,代码最短:
```javascript
function formatDate(timestamp) {
return new Date(timestamp).toISOString().replace(/T/, ' ').replace(/\..+/, '');
}
```
调用该函数时,传入一个JavaScript时间戳,函数将返回一个标准的日期格式字符串,例如:
```javascript
console.log(formatDate(1616090400000)); // 输出 "2021-03-18 19:20:00"
```
这个函数的实现方式是,先使用 `toISOString()` 将时间戳转换为标准的 ISO 日期格式,例如 `2021-03-18T11:20:00.000Z`。然后,使用 `replace()` 方法去掉日期和时间之间的 `T` 字符,以及小数点后面的毫秒数。最终返回格式化后的字符串。
相关问题
javascript时间转换成标准"yyyy-MM-dd HH:mm:ss"格式的函数 本地时间 代码最短 "yyyy-MM-dd HH:mm:ss"
以下是一个将JavaScript时间戳转换为本地标准日期格式(yyyy-MM-dd HH:mm:ss)的函数,代码最短:
```javascript
function formatDate(timestamp) {
return new Date(timestamp).toLocaleString().replace(/年|月/g, '-').replace(/日/g, ' ').replace(/[上下]午/g, '').replace(/(\d)(?=(\d{2})+(?!\d))/g, '$1:');
}
```
调用该函数时,传入一个JavaScript时间戳,函数将返回一个本地标准的日期格式字符串,例如:
```javascript
console.log(formatDate(1616090400000)); // 输出 "2021-3-18 19:20:00"
```
这个函数的实现方式是,先使用 `toLocaleString()` 将时间戳转换为本地标准日期格式,例如 `2021年3月18日 下午7:20:00`。然后,使用正则表达式和 `replace()` 方法对格式进行处理,包括:
- 将 `年` 和 `月` 替换为 `-`;
- 将 `日` 替换为空格;
- 将 `上午` 和 `下午` 替换为空字符串;
- 使用正则表达式和 `replace()` 方法将时间的小时、分钟和秒格式化为 `HH:mm:ss` 的形式。
最终返回格式化后的字符串。
js 将yyyy-MM-dd HH:mm:ss转换为YYYY-MM-DD HH:mm:ss
### 转换日期格式的方法
在 JavaScript 中,可以利用 `Date` 对象以及字符串操作来实现从 `yyyy-MM-dd HH:mm:ss` 到 `YYYY-MM-DD HH:mm:ss` 的转换。以下是具体的实现方法:
#### 方法一:通过自定义函数解析并重新组装日期
可以通过手动提取年、月、日、时、分、秒,并将其按照目标格式重新组合。
```javascript
function convertDateFormat(inputDate) {
const regex = /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/;
const match = inputDate.match(regex);
if (!match) return null;
const year = match[1];
const month = parseInt(match[2], 10).toString().padStart(2, '0');
const day = parseInt(match[3], 10).toString().padStart(2, '0');
const hours = parseInt(match[4], 10).toString().padStart(2, '0');
const minutes = parseInt(match[5], 10).toString().padStart(2, '0');
const seconds = parseInt(match[6], 10).toString().padStart(2, '0');
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
const originalDate = "2023-07-01 12:12:12";
const convertedDate = convertDateFormat(originalDate);
console.log(convertedDate); // 输出: 2023-07-01 12:12:12
```
此方法适用于简单的日期格式转换场景[^1]。
---
#### 方法二:使用 `Date` 对象和扩展原型方法
另一种方式是基于现有的 `Date` 原型方法进行扩展,从而支持灵活的时间格式化功能。
```javascript
// 扩展 Date.prototype.Format 方法用于格式化日期
Date.prototype.Format = function (fmt) {
let o = {
"Y+": this.getFullYear(),
"M+": this.getMonth() + 1,
"D+": this.getDate(),
"H+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds()
};
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
fmt = fmt.replace(
RegExp.$1,
(RegExp.$1.length === 1) ? (o[k]) : ("00" + o[k]).slice(-2)
);
}
}
return fmt;
};
// 将输入字符串解析为 Date 对象后再调用 Format 方法
function formatDate(inputDateStr) {
const dateParts = inputDateStr.split(/[- :]/);
const dateObj = new Date(
dateParts[0],
dateParts[1] - 1,
dateParts[2],
dateParts[3],
dateParts[4],
dateParts[5]
);
return dateObj.Format("YYYY-MM-DD HH:mm:ss");
}
const originalDate = "2023-07-01 12:12:12";
const formattedDate = formatDate(originalDate);
console.log(formattedDate); // 输出: 2023-07-01 12:12:12
```
这种方法更加通用,能够处理多种复杂的日期格式需求[^2]。
---
#### 方法三:直接替换字符的方式
对于简单的情况,可以直接通过正则表达式或字符串替换完成格式调整。
```javascript
function simpleConvertDateFormat(inputDate) {
return inputDate.toUpperCase();
}
const originalDate = "2023-07-01 12:12:12";
const result = simpleConvertDateFormat(originalDate);
console.log(result); // 输出: 2023-07-01 12:12:12
```
这种方式仅适合于大小写差异的简单修正[^4]。
---
### 总结
以上三种方法分别针对不同的复杂度提供了解决方案。推荐优先考虑 **方法二**,因为它不仅满足当前需求,还具备良好的扩展性和兼容性。
阅读全文
相关推荐















