
JS 转换日期格式
1. JS 如何 把 日期字符串转换成日期
在JavaScript中,将日期字符串转换为日期对象通常使用Date构造函数或者Date.parse()方法。
1.1. 常见的方式:
1.1.1. 使用new Date()构造函数:
如果你的日期字符串符合ISO 8601标准(例如:"2023-09-15T10:30:00"),你可以直接使用new Date()构造函数来创建一个日期对象。
const dateString = "2023-09-15T10:30:00"; const dateObject = new Date(dateString);
1.1.2. 使用Date.parse()方法:
Date.parse()方法解析一个表示日期的字符串,并返回从1970-1-1 00:00:00 UTC到该日期的毫秒数。然后可以使用这个毫秒数来创建一个新的Date对象。
const dateString = "2023-09-15T10:30:00"; const timestamp = Date.parse(dateString); const dateObject = new Date(timestamp);
1.1.3. 对于非标准格式的日期字符串,你可能需要手动解析字符串并创建Date对象:
function stringToDate(str) {
const [year, month, day] = str.split('-');
return new Date(year, month - 1, day); // JavaScript月份从0开始计数
}
const dateString = '2023-01-15';
const dateObject = stringToDate(dateString);1.1.4. 如果你需要处理不同地区的日期格式,或者想要更强大的日期操作功能,可以考虑使用第三方库如Moment.js或Day.js。
使用Day.js的例子:
const dayjs = require('dayjs'); // 或者通过CDN引入
const dateString = "2023-09-15";
const dateObject = dayjs(dateString).toDate();记得检查输入的日期字符串是否有效,因为如果提供的字符串不符合预期格式,可能会导致Invalid Date错误。可以通过检查dateObject是否为有效的日期对象来避免这种情况:
if (isNaN(dateObject.getTime())) {
console.error("Invalid date format");
} else {
console.log(dateObject);
}以上就是在JavaScript中将日期字符串转换为日期对象的一些常见方法。根据你的具体需求选择合适的方法即可。
2. JS 如何 把 日期串转换成日期格式字符串
在JavaScript中,如果你有一个日期字符串,并且你想要将其转换为特定格式的日期字符串,你可以按照以下步骤操作:
1. 首先,将日期字符串解析为一个 Date对象。2. 然后,使用 Date对象的方法获取年、月、日等各个部分。3. 最后,根据需要的格式,将这些部分组合成一个新的字符串。
这里有几个示例函数来实现这个过程。假设我们有一个日期字符串"2023-09-15",我们想把它转换为不同的格式:
2.1. 示例:转换为 "YYYY-MM-DD" 格式
function formatDate(dateStr) {
const date = new Date(dateStr);
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // Months are zero-based
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
}
const dateString = "2023-09-15";
console.log(formatDate(dateString)); // 输出: "2023-09-15"2.2. 示例:转换为 "MM/DD/YYYY" 格式
function formatDateSlash(dateStr) {
const date = new Date(dateStr);
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${month}/${day}/${year}`;
}
const dateString = "2023-09-15";
console.log(formatDateSlash(dateString)); // 输出: "09/15/2023"2.3. 示例:转换为 "DD/MM/YYYY" 格式
function formatDateDDMMYYYY(dateStr) {
const date = new Date(dateStr);
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${day}/${month}/${year}`;
}
const dateString = "2023-09-15";
console.log(formatDateDDMMYYYY(dateString)); // 输出: "15/09/2023"2.4. 使用第三方库(如 date-fns)
如果你想避免手动处理日期格式化,或者需要支持更多的格式选项,可以使用第三方库如 date-fns 或者 moment.js。以下是使用 date-fns 的例子:
首先安装 date-fns:
npm install date-fns
然后使用它来格式化日期
import { format } from 'date-fns';
const dateString = "2023-09-15";
const formattedDate = format(new Date(dateString), 'yyyy-MM-dd');
console.log(formattedDate); // 输出: "2023-09-15"你可以根据你的需求选择不同的格式化模式,例如 'MM/dd/yyyy', 'dd/MM/yyyy' 等等。date-fns 提供了丰富的格式化选项,而且性能较好,推荐用于新的项目中。注意 moment.js 已经停止更新,因此对于新项目不推荐使用。







