【JavaScript】日期格式转化,并计算距离当前天数

【要求】

后端接口返回的是"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,以查看计算结果。

通过将函数的计算结果作为对象的属性返回,可以在后续的代码中使用这些属性,进行进一步的操作或输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值