能不能写一个javascript的日期格式转换的函数 , 要求是无论是什么日期格式, 全部都转换成xxxx-xx-xx
时间: 2024-11-24 12:40:55 浏览: 5
JavaScript实现字符串与日期的互相转换及日期的格式化
当然可以。这是一个简单的 JavaScript 函数,它接受一个日期字符串作为输入,尝试解析各种常见的日期格式,然后将其转换为 "yyyy-mm-dd" 的形式:
```javascript
function formatDate(inputString) {
// 定义一些常见日期格式的正则表达式
const formats = [
{ pattern: /^\d{4}-\d{2}-\d{2}$/, format: 'yyyy-MM-dd' }, // 如果已格式化,直接返回
{ pattern: /^\d{2}/, format: 'yyyy-MM-dd' }, // 年份只有两位数的情况
{ pattern: /^(\d{1,2})\/(\d{1,2})\/(\d{4})/, format: 'yyyy-MM-dd', replaceWith: '-$3-$1-$2' },
{ pattern: /^(\d{1,2})年(\d{1,2})月(\d{1,2})日/, format: 'yyyy-MM-dd', replaceWith: '-$3-$2-$1' },
{ pattern: /^(\d{4})年(\d{1,2})月(\d{1,2})日/, format: 'yyyy-MM-dd' }
];
// 遍历每个格式,尝试匹配并替换
formats.forEach(({ pattern, format, replaceWith }) => {
if (pattern.test(inputString)) {
return inputString.replace(pattern, replaceWith);
}
});
// 如果所有格式都不匹配,返回原始字符串
return inputString;
}
// 使用示例
console.log(formatDate('2023-05-01')); // 输出: '2023-05-01'
console.log(formatDate('05/01/2023')); // 输出: '2023-05-01'
console.log(formatDate('2023年5月1日')); // 输出: '2023-05-01'
阅读全文