几年前的javascript时间戳,并考虑闰年
javascript timestamp from years ago and consider leap years
我将用户的出生日期存储在时间戳中。我用javascript计算时间戳。
day = $("#birthday-day").val();
year = $("#birthday-year").val();
month = $("#birthday-month").val()-1;
date = new Date(Date.UTC(year, month, day));
birthdateTimestamp = Math.round(date.getTime() / 1000);
在搜索页面中,我只有年龄字段。根据这个字段,我需要显示与这个年龄相匹配的用户。我根据年龄字段值时间戳进行计算,这样我就可以在数据库中使用它作为条件。
now = new Date();
age = $("#age").val();
date = new Date(Date.UTC(now.getFullYear()-age));
timestampYearsAgo = date.getTime()/1000;
我的问题:这些方法闰年安全吗?或者我会因为闰年而遇到任何问题吗?我很确定第一部分是可以的(如果不可以的话请纠正我),但对于第二部分,当我根据年龄计算时间戳时,我不确定如何才能同时考虑闰年。有人知道吗?
Tnx
您在第二个样本中创建的日期对应于给定年份的1/1(因为您只提供默认为0的年、日和月)。这可能不是你想要的。
如果你想要今天某个年龄的人,你应该创建一个与今天相对应的日期,然后减去年份,例如:
var lowDate = new Date;
lowDate.setFullYear(lowDate.getFullYear() - age));
lowTimestamp = lowDate.getTime()
var highDate = new Date;
highDate .setFullYear(highDate .getFullYear() - age + 1));
highTimestamp = highDate.getTime()
如果生日时间戳介于lowTimestamp和highTimestamp之间,则年龄是正确的。
没关系,Date对象会为您计算闰年,但不会计算闰秒:)
如果你经常和约会对象玩,你可能想看看这样的东西http://tempus-js.com/其中包括诸如isLeapYear()之类的api方法。
相关文章:
- 如何每10.6秒从时间戳增加+1
- 使用AngularJS从时间戳中获取工作日
- 将时间戳转换为java中的ISO860,
- Javascript Unix时间戳转换
- JavaScript JSON关联对象键和值都作为日期时间戳
- 时间戳与mongoskin如何
- 用时间戳获取两个不同日期之间的时间差
- JavaScript到PHP的时间戳失败,增加了大约一个半月的时间
- 转换unix时间戳转换
- 带有unix时间戳的d3.js平分线
- 当转换为Python日期时间时,Node的时间戳落后3分钟
- 如何检索AMD的XHR响应代码(+时间戳)'大型Dojo
- javascript时间戳插入字符串变量
- Moment.js unix时间戳,以分钟为单位显示以前的时间
- 事件时间戳谷歌分析
- 时间戳到文本
- Unix时间戳从现在输出为1970
- 如何使用javascript在嵌入式youtube视频上创建可点击的时间戳链接
- 如何在时间标签和相同的类中以UTC格式重新格式化ISO 8601时间戳,并通过JavaScript根据用户区域设置和时区
- 几年前的javascript时间戳,并考虑闰年