2017-02-07 126 views
1

即时制作迷你考勤模块,但我没有想法做到这一点,所以请帮助我,用户必须每3小时出席一次,所以如果他们参加3:05,与时间的差异将是的$late当前时间减去提交时间

的价值,这是我得到的时间在页面显示

var currentTime = new Date() 
var hours = currentTime.getHours() 
var minutes = currentTime.getMinutes() 
if (minutes < 10){ 
minutes = "0" + minutes 
} 
document.write(hours + ":" + minutes + " ") 
if(hours > 11){ 
document.write("PM") 
} else { 
document.write("AM") 
} 

这样的IM计划通过使用此

INSERT INTO time_in(late,time_in) 
     VALUES ('$late,NOW())"; 
获得一次进入数据库的代码3210

和我的大问题。 是我如何得到所需的时间差异?以及如何将差异插入到我的数据库中?

回答

0

Javascript日期对象定义了一个名为.getTime()的方法,该方法将该对象转换为整数,从1970年1月1日00:00:00开始的毫秒数。

等方面差异可以计算如下:

var before = new Date('2017-02-07 06:00:00'); 
var after = new Date('2017-02-07 07:00:00'); 
var diff = after.getTime() - before.getTime(); 
// 3600000 milliseconds 

或使用(+),快捷键是一样的:

var diff = +before- +after; 

你说用户必须参加的东西在每3小时与最近的出勤时间的差异将如下计算:

var now = new Date(); 
var attTime = new Date(+now - (+now % (3*3600*1000))); 
var minutesLate = Math.round((+now - +attTime)/60000); 
+0

嗨,对不起,问这个问题,但是如何我是否在代码中写入? – JustAngelo

+0

将最后一个代码块的'now'重命名为'currentTime'和'minutesLate',并将其粘贴到代码中,在db调用之前。 –

+0

嗨它不工作 – JustAngelo