js 字符串和日期互转
时间: 2023-11-25 08:04:54 浏览: 77
JavaScript 中,可以使用 `Date` 对象和相关方法来实现字符串和日期的互转,具体代码如下:
字符串转日期:
```javascript
var dateString = '2021-08-25';
var date = new Date(dateString);
console.log(date); // 输出日期对象
```
这段代码中,使用 `new Date(dateString)` 将字符串转换为日期对象,如果字符串格式不正确,则会返回 `Invalid Date`。
日期转字符串:
```javascript
var date = new Date();
var dateString = date.toISOString().substring(0, 10);
console.log(dateString); // 输出日期字符串
```
这段代码中,先使用 `toISOString()` 方法将日期对象转换为 ISO 格式的字符串,再通过 `substring()` 方法截取日期部分,即可得到日期字符串。需要注意的是,ISO 格式的字符串的日期部分是以 `"YYYY-MM-DD"` 的形式表示的。
相关问题
js 字符串和日期互转 按指定格式
可以使用 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 (中国标准时间)
```
需要注意的是,这两个函数都假设输入的日期字符串符合指定的格式,否则可能会出现错误。因此,在使用这两个函数时,需要确保输入的字符串格式正确。
阅读全文