如何比较两个时间戳的值
How to compare values of two timestamps
我需要检查一个条件,其中我需要找出两个时间戳是否来自不同的日期。
我试着使用时间戳getDate,然后检查
if (currentTimestamp.getDate() > previousTimestamp.getDate() )
当这两个值属于两个独立的月份时,问题就出现了,我如何在纯Javascript中进行处理?
有很多方法可以实现这一点。
如果currentTimestamp是一个字符串,只需获取日期部分(年、月、日)并进行比较。你还没有显示格式,所以如何显示取决于你自己。
如果currentTimestamp是一个日期,您可以使用nnnnnn的建议并比较日期字符串:
if (currentTimestamp.toDateString() == previousTimestamp.toDateString())
但是,由于toDateString的值取决于实现,应仅在主机内使用,因此不应在主机之间比较字符串。
如果您不介意修改Date值,那么:
if (currentTimestamp.setHours(0,0,0,0) == previousTimestamp.setHours(0,0,0,0))
如果两者在同一天,也将返回true。如果你不想更改日期,请先复制:
if (new Date(+currentTimestamp).setHours(0,0,0,0) == new Date(+previousTimestamp).setHours(0,0,0,0))
随便什么。
正如马特所指出的,你对"天"的概念应该澄清为当地日或UTC日(或任何其他时区),因为当地日开始和结束附近的时间可能在不同的UTC(或其他时区)日,反之亦然。
var dateObj = currentTimestamp.getDate();
var month = dateObj.getUTCMonth() + 1;
//months from 1-12
var day = dateObj.getUTCDate();
var year = dateObj.getUTCFullYear();
var dateObjOld = previousTimestamp.getDate();
var dayOld = dateObjOld.getUTCDate();
var monthOld = dateObjOld.getUTCMonth() + 1;
var yearOld = dateObjOld.getUTCFullYear();
if(year > yearOld && month > monthOld && day > dayOld) {
// currentTimeStamp is newer. Do stuff
}
查看此答案https://stackoverflow.com/a/2013332/4479004
使用.toDateString()
方法应该可以做到:
if (currentTimestamp.toDateString() != previousTimestamp.toDateString() ) {
// different days
}
该方法以不带时间的字符串形式返回日期,格式类似于"Fri Apr 15 2016"
,但具体格式无关紧要,因为您所说的问题只是弄清楚两个时间戳是否在同一天。
相关文章:
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- Javascript-如何使用bootstrap日期时间选择器自动计算两个时间输入之间的差异
- 比较两个时间戳天数
- 用户如何获取两个时间戳之间的对象
- 如何比较两个时间戳的值
- 比较D3.js中的两个时间对象
- 如何在 24 小时制下计算两个时间之间的时差
- 两个时间对象之间的差异
- 如何计算 24 小时格式的两个时间之间的差异
- 在javascript中找到差异btw两个时间输入
- 在 JavaScript 中获取两个时间之间的时差
- 如何获得两个时间戳的差异
- 在 JavaScript 中以 AM/PM 格式的两个时间之间的差异
- JavaScript比较两个时间变量
- 以分钟为单位计算两个时间之间的差异
- 比较if语句中的两个时间值
- 使用javascript计算两个时间戳之间的差异
- 在javascript中,我如何比较两个时间戳,看看他们有多少天的差异
- 用格式'hh:mm t'比较javascript中的两个时间
- 如何在 JavaScript 中呈现两个时间戳之间的上下文差异