【发布时间】:2009-02-19 22:57:42
【问题描述】:
我有代码可以为员工进行时间跟踪。它会创建一个计数器来向员工显示他们打卡的时间。
这是当前代码:
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 的范围内,我们试图用 DateTimes 替换所有时间使用。我不知道如何获得两个日期时间之间的秒数。减去它们会产生我不知道如何解释的 Rational,而减去 Times 会产生以秒为单位的差异。
注意:从 Ruby 1.9.2 开始,时间的硬性限制被移除。但是,时间针对 1823-11-12 和 2116-02-20 之间的值进行了优化。
【问题讨论】: