【要求】
后端接口返回的是"2023-09-11"日期格式, 要求转化成"2023年09月11日",并计算距离目前的天数
【思路】
(1)定义 `yearChange`函数,可接受一个日期字符串作为参数,并返回一个包含格式化日期和日期差值的对象。
首先,函数将日期字符串转换为日期对象,使用 `new Date(dateStr)`。然后,它从日期对象中提取年份、月份和日期,并将它们格式化为 `年月日` 的形式,存储在 `formattedDate` 变量中(也可使用split切割)。
接下来,函数获取当前日期对象,使用 `new Date()`。然后,它计算目标日期与当前日期之间的差值,将其转换为毫秒数,并将其存储在 `timeDiff` 变量中。
然后,它将毫秒数转换为天数,使用 `Math.ceil()` 函数向上取整,存储在 `daysDiff` 变量中。最后,函数返回一个包含 `formattedDate` 和 `daysDiff` 的对象。
(2)在主程序中
我们定义了一个日期字符串 `dateStr`,并将其作为参数传递给 `yearChange` 函数。函数返回的结果存储在 `result` 变量中。然后,我们使用 `result.formattedDate` 和 `result.daysDiff` 分别打印格式化日期和日期差值。
【方法】
function yearChange(dateStr) {
var targetDate = new Date(dateStr); // 将日期字符串转换为日期对象
var year = targetDate.getFullYear();
var month = ("0" + (targetDate.getMonth() + 1)).slice(-2);
var day = ("0" + targetDate.getDate()).slice(-2);
var formattedDate = year + "年" + month + "月" + day + "日";
console.log(formattedDate); // 输出:2022年01月01日
var currentDate = new Date(); // 获取当前日期对象
// 将日期对象转换为毫秒数,并计算差值
var timeDiff = Math.abs(targetDate.getTime() - currentDate.getTime());
// 将毫秒数转换为天数
var daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24));
console.log(daysDiff); // 输出:621
//返回对象形式的结果
return {
formattedDate: formattedDate,
daysDiff: daysDiff
};
}
var dateStr = "2022-01-01";
var result = yearChange(dateStr); // 调用函数并接收计算结果
console.log(result.formattedDate); // 输出:2022年01月01日
console.log(result.daysDiff); // 输出:621
在这个示例中,我们定义了一个名为 yearChange
的函数,该函数接收一个日期字符串作为参数,并返回一个包含 formattedDate
和 daysDiff
属性的对象。在主代码中,我们调用 yearChange
函数,并将日期字符串 "2022-01-01"
作为参数传递给它。然后,将函数的返回值赋值给变量 result
,以便在后续的代码中使用。最后,我们分别输出result.formattedDate
和 result.daysDiff
,以查看计算结果。
通过将函数的计算结果作为对象的属性返回,可以在后续的代码中使用这些属性,进行进一步的操作或输出