Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 如何计算轨道中的时差_Ruby On Rails 3_Timestamp - Fatal编程技术网

Ruby on rails 3 如何计算轨道中的时差

Ruby on rails 3 如何计算轨道中的时差,ruby-on-rails-3,timestamp,Ruby On Rails 3,Timestamp,我有一个字段是时间戳。我想计算时间戳和当前时间之间的时间差,并以人类可读的方式显示时间,如 2天剩余时间#在剩余>1天时不显示小时数 只要剩下不到一天,我就会有一个javascript倒计时计时器 我构建了dotiw库来实现这一点: 这是基于Rails中的distance\u of\u time\u in\u words方法,该方法不够精确,因此我使用dotiw使其更加精确。请尝试以下方法: if end_date < Time.now # ended already return '

我有一个字段是时间戳。我想计算时间戳和当前时间之间的时间差,并以人类可读的方式显示时间,如

2天剩余时间#在剩余>1天时不显示小时数


只要剩下不到一天,我就会有一个javascript倒计时计时器

我构建了
dotiw
库来实现这一点:

这是基于Rails中的
distance\u of\u time\u in\u words
方法,该方法不够精确,因此我使用
dotiw
使其更加精确。请尝试以下方法:

if end_date < Time.now # ended already
  return 'Ended'
elsif end_date > (Time.now + 1.day) # more than 1 day away
  diff_in_days = ((end_date - Time.now).to_i / 1.day)
  days_string = diff_in_days.to_s
  days_string += (diff_in_days > 1) ? ' Days' : ' Day'
  return days_string
else # ending today
  diff_in_HMS = Time.at(end_date - Time.now).gmtime.strftime('%R:%S')
  return diff_in_HMS
end
如果结束日期(Time.now+1.day)#超过1天
diff_in_days=((end_date-Time.now).to_i/1.day)
days\u string=diff\u in\u days.to\u s
天数字符串+=(天数中的差异>1)?'天:'天'
返回天数\u字符串
否则,今天就结束
diff_in_HMS=Time.at(end_date-Time.now).gmtime.strftime(“%R:%S”)
HMS中的返回差异
终止

如果结束日期大于1天,则打印“X天”;如果今天结束,则打印“HH:MM:SS”;如果结束日期在过去,则打印“结束”。

刚刚将您的宝石添加到我的宝石文件中。谢谢但是,当剩余时间超过一天时,不显示任何时间的逻辑将如何实现?