JS+TS+Dayjs实现出生日期到当前日期是*岁*月*天

备注:

本例子中有两个参数 一个是出生日期另外一个是当前日期格式都是"1995-06-24"这种格式,能够精确算出月*天,具体实现代码如下

javascript 复制代码
/**
 * 
 * @param birthDay 出生日期
 * @param curDate 当前日期
 * @returns 
 */
export const birthToAgeDiff = (birthDay: string, curDate: string) => {
  const birth = dayjs(birthDay);
  const now = dayjs(curDate);
  if(birth.valueOf()> now.valueOf()) return '未出生~'

  let years = now.year() - birth.year();
  let months = now.month() - birth.month();
  let days = now.date() - birth.date();

  if (days < 0) {
    months -= 1;
    days += dayjs(now).subtract(1, 'month').daysInMonth();
  }

  if (months < 0) {
    years -= 1;
    months += 12;
  }
  return ` ${years}岁${months}月${days}天`
};
相关推荐
网域小星球3 分钟前
C++ 从 0 入门(一)|C++ 基础语法、命名空间、引用、IO 输入输出
开发语言·c++·引用·命名空间·cin/cout
雾岛听蓝18 分钟前
Qt按钮与标签控件详解
开发语言·经验分享·笔记·qt
黑牛儿21 分钟前
AI Agent\+PHP实现智能接口限流,避开算力成本陷阱(结合今日AI热点)
开发语言·人工智能·php
XMYX-023 分钟前
15 - Go 泛型(Generics):从入门到实战
开发语言·golang
Halo_tjn24 分钟前
Java 内部类
java·开发语言·算法
碎碎念的安静26 分钟前
WPF 与 Qt 进程间通信(IPC)
开发语言·qt·wpf
boonya40 分钟前
Spring AI 深度实践教程:从“能用”到“用好”
开发语言·python
(Charon)41 分钟前
【Qt/C++】Qt/C++ 中 :: 和 . 到底有什么区别?
开发语言·c++·qt
REDcker1 小时前
C++跨平台与跨语言绑定工具:SWIG、Djinni 等选型
开发语言·c++
傻啦嘿哟1 小时前
Python 操作 Word 文档属性与字数统计方法详解
开发语言·c#