js 字符串和日期互转 按指定格式
时间: 2024-03-29 18:40:08 浏览: 100
可以使用 JavaScript 中的 Date 对象和字符串的处理函数来进行字符串和日期之间的互转。
例如,将一个日期对象转化成指定格式的字符串,可以使用以下函数:
```javascript
function formatDate(date, format) {
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
const hour = date.getHours();
const minute = date.getMinutes();
const second = date.getSeconds();
return format
.replace('yyyy', year)
.replace('MM', (month < 10 ? '0' : '') + month)
.replace('dd', (day < 10 ? '0' : '') + day)
.replace('HH', (hour < 10 ? '0' : '') + hour)
.replace('mm', (minute < 10 ? '0' : '') + minute)
.replace('ss', (second < 10 ? '0' : '') + second);
}
```
这个函数使用了一个格式化字符串,其中包含了年、月、日、小时、分钟和秒的占位符。函数将这些占位符替换成对应的日期或时间部分,并返回最终的字符串。
例如,以下代码将一个日期对象转化为 `2021-12-01 15:30:00` 这种格式的字符串:
```javascript
const date = new Date('2021-12-01T15:30:00Z');
const formattedDate = formatDate(date, 'yyyy-MM-dd HH:mm:ss');
console.log(formattedDate); // 输出:2021-12-01 15:30:00
```
反过来,将一个指定格式的字符串转化为日期对象,可以使用以下函数:
```javascript
function parseDate(str, format) {
const yearIndex = format.indexOf('yyyy');
const year = parseInt(str.substr(yearIndex, 4));
const monthIndex = format.indexOf('MM');
const month = parseInt(str.substr(monthIndex, 2)) - 1;
const dayIndex = format.indexOf('dd');
const day = parseInt(str.substr(dayIndex, 2));
const hourIndex = format.indexOf('HH');
const hour = parseInt(str.substr(hourIndex, 2));
const minuteIndex = format.indexOf('mm');
const minute = parseInt(str.substr(minuteIndex, 2));
const secondIndex = format.indexOf('ss');
const second = parseInt(str.substr(secondIndex, 2));
return new Date(year, month, day, hour, minute, second);
}
```
这个函数接受一个日期字符串和一个格式化字符串作为参数。函数根据格式化字符串的格式,从日期字符串中提取出对应的值,然后使用这些值创建一个新的 Date 对象。
例如,以下代码将一个 `2021-12-01 15:30:00` 格式的字符串转化为对应的日期对象:
```javascript
const dateString = '2021-12-01 15:30:00';
const format = 'yyyy-MM-dd HH:mm:ss';
const date = parseDate(dateString, format);
console.log(date); // 输出:Wed Dec 01 2021 15:30:00 GMT+0800 (中国标准时间)
```
需要注意的是,这两个函数都假设输入的日期字符串符合指定的格式,否则可能会出现错误。因此,在使用这两个函数时,需要确保输入的字符串格式正确。
阅读全文