根据时间戳计算宝宝年龄(年月日)
//每个月按30天计算所以误差有些大
// 根据时间戳计算宝宝年龄getBabyAge:function(time){let birthday = time;let now = new Date().getTime();let hours = (now-birthday)/3600000;let year = Math.floor(hours / (24 * 30 * 12));hours = hours % (24 * 30 * 12);let months = Math.floor(hours / (24 * 30 ));hours = hours % (24 * 30 );let days = Math.floor(hours / (24));let age = year + '岁' + months + '个月' + days +'天';// console.log('已经出生:'+ age);return age;},
//误差能小些在1天左右
// 根据时间戳计算宝宝年龄getBabyAge: function (time) {let now = new Date().getTime();let time2 = now - time;let date = new Date(time2);let year = date.getFullYear() - 1970;let months = date.getMonth();let days = date.getDate()-1;let age = year + '岁' + months + '个月' + days + '天';// console.log('已经出生:'+ age);return age;},
将当前日期的时间戳减去出生日期的时间戳再转化为日期格式。减去1970年1月1日日期为出生年月日。
//基本没有误差 getBabyAge2(time) {let nowTime = new Date();let birthTime = new Date(time);// console.log("time",nowTime,birthTime);// 当前年月日let curYear = nowTime.getFullYear();let curMonth = nowTime.getMonth();let curDay = nowTime.getDate();// 出生年月日let birYear = birthTime.getFullYear();let birMonth = birthTime.getMonth();let birDay = birthTime.getDate();// 年月日之差let year = curYear - birYear;let months = curMonth - birMonth;let day = curDay - birDay;// console.log("test",year,months,day);//(1)将出生日期的时间戳都转化为Date,分别获取当前时间和出生时间的年、月、日之差//(2)若月份相差为负说明不满这一年,年份减1,月份借了一年变为12+当前月份。故月份之差变为12+当前月份-出生月份。// 若月份相差为0并且天相差为负,说明也不满一年,计算同理。//(3)若天相差为负,说明不满这个月,月份减1,天数借了一个月,故天数之差为上个月的天数+当前天-出生天if (months < 0 || months == 0 && day < 0) {year -= 1;months = 12 + curMonth - birMonth;}if (day < 0) {months -= 1;let date = this.getDaysInMonth(curYear, curMonth);// console.log("date",date);day = date + curDay - birDay;}age = year + '岁' + months + '个月' + day + '天';// console.log("age",age);return age;},// 获取某年某月有多少天getDaysInMonth(year,month){month = parseInt(month,10);var temp = new Date(year,month,'0');return temp.getDate();},
(1)将出生日期的时间戳都转化为Date,分别获取当前时间和出生时间的年、月、日之差
(2)若月份相差为负说明不满这一年,年份减1,月份借了一年变为12+当前月份。故月份之差变为12+当前月份-出生月份。
若月份相差为0并且天相差为负,说明也不满一年,计算同理。
(3)若天相差为负,说明不满这个月,月份减1,天数借了一个月,故天数之差为上个月的天数+当前天-出生天
根据时间戳计算宝宝年龄(年月日)相关推荐
- PHP年龄计算 取得两个时间戳相差的年龄年月日显示
2019独角兽企业重金招聘Python工程师标准>>> 因需要显示对象的年龄,在网上找了几个看着不是太理想,自己写了一个,取得两个时间戳相差年龄的函数,显示结果为x岁x月x天,年月为 ...
- android出生日期计算年龄,Java 通过生日计算宝宝多大了,输出我27岁7月零9天
通过生日计算宝宝多大了 前段时间大家在打新冠状疫苗的时候,护士给了我一张小纸条,上面清晰的显示我在地球上的年龄27岁4个月零3天.我们也写个代码走起 import java.text.ParseExc ...
- T-SQL 2 Tips: 1.计算任意两日期之间的周一到周日分别各有几个! 2.根据出生日期计算精确年龄!...
这两个小技巧,不写不知道,一写吓一跳! 都是看似简单,实际做起来就懵,得仔细想一想,才能写对! 凡是有日期运算的程序都要细心哦! 先说第二个: 2.根据出生日期精确计算年龄! 所谓计算精确年龄就是 ...
- 算法之unix时间戳和UTC时间(年月日)互换
算法之unix时间戳和UTC时间(年月日)互换 author:onceday date:2022年6月8日 文章目录 算法之unix时间戳和UTC时间(年月日)互换 1.c标准库时间结构定义 2.自定 ...
- js生日计算年龄_用T-SQL计算明细年龄问题.
提前说一下,有一个bug,就是出生日期等于getdate()的时候,由于没有精确到时分秒,而无法计算年龄. 过几天补上. /*计算明细年龄问题*/DECLARE @ADATE DATETIME, @B ...
- 自定义起始时间的时间戳计算(个人代码记录)
个人代码记录,这个时间戳计算,由于项目数据特殊需求,自己设置的时间戳起始时间为2019年1月1日开始, 然后根据时间戳数据计算出现在时间,具体使用如下,这里setFullYear的月份是0到11,所以 ...
- 年月日_C++计算输入的年月日是这一年的第几天
C++计算输入的年月日是这一年的第几天 #include<stdio.h> int leap(int a) { if(a%4==0&&a%100!=0||a%400==0) ...
- android 时间差 秒_Android进阶之使用时间戳计算时间差
本文实例为大家分享了Android使用时间戳计算时间差的具体代码,供大家参考,具体内容如下 因当前项目需要计算时间差,进行数据处理,所以在Csdn上找了一下,之后修修补补是可以用的,建议大家如果用到项 ...
- 面试题:根据Unix时间戳计算时间
根据Unix时间戳计算时间,不分年月大小,每月三十天,每年按360天计算.开始时间1970/01/01 00:00:00,输入秒数,显示时间 思路一:进位,60秒进1分钟,60分进1小时,24小时进1 ...
最新文章
- 喀什市2021年高考成绩查询,2021年新疆高考查分网站查分网址:http://www.xjzk.gov.cn/...
- 计算机基础知识易错,事业单位考试计算机基础知识易错试题.doc
- centos 5 6安装本地yum源
- 网络编程—网络基础概览、socket,TCP/UDP协议
- java创建子类对象的步骤_一通Spring骚操作:我敢说没人比我更懂Java对象创建
- micropython flask_在Python的Flask框架中实现单元测试的教程
- Kerberos认证过程学习理解
- 掌趣科技:游戏《一拳超人:最强之男》累计收入近5亿元
- 数字积分法直线插补c语言,数字积分法的直线插补.ppt
- 黑苹果双系统时间不一致_黑苹果系统与windows时间差问题的解决
- c++语言杨辉三角,杨辉三角 (C++代码)
- This experimental syntax requires enabling the parser plugin: ‘optionalChaining‘
- java 游戏打砖块_基于JAVA的打砖块游戏
- 一文理解所有需求分析中的基本术语
- 小米路由器SSH资料攻略
- h5、微信、app互相跳转
- 4种 LBS “附近的人” 实现方案,人人都能看的懂
- java EE基础概念了解
- 韦东山嵌入式开发板小结1
- new URL(“www.jjj.com“)