新手问题 Ruby 如何做时间比较

sz · May 08, 2017 · Last by chalvern replied at May 09, 2017 · 4203 hits

最近一个项目,如果输入时间为空,则立即做一件事,否则到指定输入时间在做,输入的时间为字符串格式如

str1=2017-1-2 12:12:00
 today = Time.new; 
 str2=today.strftime("%Y-%m-%d %H:%M:%S")
if str1==""
  do nothing
else
  str1==str2
  # do Something 
end

这个时间该如何比较啊,求大神指导

用 Time 的函数来处理,而不是用字符串

https://ruby-doc.org/core-2.2.0/Time.html

Time 类型是可以直接做比较的

或者可以 today.to_i 转成数字的 unix time 来比较

else
  str1==str2

我感觉我 ruby 白学了……

Reply to huacnlee

谢谢。因为是搞 java 的,才接触 ruby 不久。还有一个问题,假如输入的时候是明天,那现在进入这个方法,肯定是不等于,这个方法就走完了,如何在指定时间在进入这个方法,触发这个事件,去做需要执行的任务啊

是不是在找 whenever 类似的定时器?

You need to Sign in before reply, if you don't have an account, please Sign up first.