我今天可以使用代码DateTime.now.strftime("%d/%m/%Y %H:%M")
但是如果我想将其中的一些与诸如DateTime.now.last_month.strftime("25/%m/%Y 00:00")
这样的字符串结合起来怎么办
有可能实现这一目标吗?
我想选择上个月的第25天,并在一定条件下使用它。
此条件if DateTime.now.strftime("%d/%m/%Y %H:%M") > DateTime.now.last_month.strftime("25/%m/%Y 00:00")
返回false(带有字符串)
此条件if if DateTime.now.strftime("%d/%m/%Y %H:%M") > DateTime.now.last_month.strftime("%d/%m/%Y %H:%M")
返回true(不带字符串)
答案 0 :(得分:4)
如果我正确理解了您要寻找的内容,那么您就在上个月的25号之后。使用Time#new
:
ma = (DateTime.now - 1.month)
#⇒ Sun, 03 Jun 2018 11:07:24 +0200
DateTime.new(ma.year, ma.month, 25, 0, 0, 0, "+00:00")
#⇒ Mon, 25 Jun 2018 00:00:00 +0000
现在对比您想要的任何东西。
答案 1 :(得分:1)
@mudasobwa的答案会起作用。
但是我想通过使用- 1.month
来使用.ago
可以更安全一些
示例:ma = 1.month.ago
然后,您可以添加他写的这篇文章:DateTime.new(ma.year, ma.month, 25, 0, 0, 0, "+00:00")
另外,当您可以比较日期时,最好使用UTC,这样就不必比较两个具有不同时区的日期时间
示例:if your_datetime.utc > ma.utc
答案 2 :(得分:1)
您也可以执行类似的操作以获取每月的25号日期
DateTime.current.last_month.beginning_of_month + 24.days
=> Mon, 25 Jun 2018 00:00:00 +0000