我在我的代码中使用JavaScript Date()
实用程序,通过比较两个不同的日期来获取今天的任务。
otApp.TaskPanelUtils.getDaysDiff = function(task)
{
var current = new Date();
var taskDueDate = new Date(task.unformattedDueDate())
return Math.trunc((current.getTime()-taskDueDate.getTime())/otApp.TaskPanelUtils.oneDay);
}
var daysDiff = otApp.TaskPanelUtils.getDaysDiff(taskItem);
if(daysDiff==0 && Math.sign(daysDiff)==0)
{
tempItems.push(taskItem);
}
即使我getDaysDiff()
得到“-0”负0 ,上述代码也能正常工作。
我想在正面为“0”的情况下填写tempItems
。
Math.sign(-0)
将返回-0,然后如何与“-0”或-0进行比较?
答案 0 :(得分:1)
即使我得到“-0”为负0,上面的代码也能正常工作 getDaysDiff()。
因为0
和-0
评估为0
。
Math.sign(-0) == Math.sign(0) //outputs true
0 == -0; //outputs true
0 === -0 //outputs true
String(-0) //outputs "0"
修改强>
我建议简化/修改函数,使其返回布尔值
otApp.TaskPanelUtils.getDaysDiff = function(task)
{
var current = new Date();
var taskDueDate = new Date(task.unformattedDueDate())
return ((current.getTime()-taskDueDate.getTime())/otApp.TaskPanelUtils.oneDay) > 0;
}
并将其用作
if(otApp.TaskPanelUtils.getDaysDiff(taskItem))
{
tempItems.push(taskItem);
}