我有个代码,可以追踪员工的时间。它创建一个计数器来显示员工已经打卡多久了。
这是目前的代码:
start_time = Time.parse(self.settings.first_clock_in)
total_seconds = Time.now - start_time
hours = (total_seconds/ 3600).to_i
minutes = ((total_seconds % 3600) / 60).to_i
seconds = ((total_seconds % 3600) % 60).to_i
这样挺好的。但是因为时间被限制在1970-2038年的范围内,我们正试图用日期时间代替所有时间的使用。我不知道如何得到两个日期时间之间的秒数。减去它们会产生一个我不知道如何解释的 Rational,而减去 Times 会产生几秒钟的差异。
注意: 自 Ruby 1.9.2以来,Time 的硬限制被移除了。但是,Time 针对1823-11-12和2116-02-20之间的值进行了优化。