如何在 Rails 中将当前时间添加 10 天

发布于 2024-10-11 12:27:54 字数 144 浏览 3 评论 0原文

我尝试做类似的事情,

Time.now + 5.days

但这不起作用,尽管我隐约记得看到过,并且印象非常深刻,能够做类似 2.years 等的事情。

我如何在 Rails 中做到这一点3?

I tried doing something like

Time.now + 5.days

but that doesn't work, even though I vaguely remember seeing, and being very impressed, with being able to do something like 2.years etc.

How do I do that in Rails 3?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

难忘№最初的完美 2024-10-18 12:27:54

使用

Time.now + 10.days

甚至

10.days.from_now

两者都肯定有效。您确定您使用的是 Rails 而不仅仅是 Ruby 吗?

如果你确实在 Rails 中,你想从哪里运行它?请注意,必须加载 Active Support。

Use

Time.now + 10.days

or even

10.days.from_now

Both definitely work. Are you sure you're in Rails and not just Ruby?

If you definitely are in Rails, where are you trying to run this from? Note that Active Support has to be loaded.

泪是无色的血 2024-10-18 12:27:54

daysyears 等是 Active Support 的一部分,因此这在 irb 中不起作用,但应该在 中起作用>rails 控制台

days, years, etc., are part of Active Support, So this won't work in irb, but it should work in rails console.

拥有 2024-10-18 12:27:54

其他一些选项,仅供参考

-10.days.ago
# Available in Rails 4
DateTime.now.days_ago(-10)

只需列出我所知道的所有选项:

[1] Time.now + 10.days
[2] 10.days.from_now
[3] -10.days.ago
[4] DateTime.now.days_ago(-10)
[5] Date.today + 10

那么现在,如果我们关心时区,它们之间有什么区别:

  • [1, 4] 使用系统时区
  • [ 2, 3] 使用 Rails 应用程序的配置时区
  • [5] 结果中仅包含日期,不包含时间

Some other options, just for reference

-10.days.ago
# Available in Rails 4
DateTime.now.days_ago(-10)

Just list out all options I know:

[1] Time.now + 10.days
[2] 10.days.from_now
[3] -10.days.ago
[4] DateTime.now.days_ago(-10)
[5] Date.today + 10

So now, what is the difference between them if we care about the timezone:

  • [1, 4] With system timezone
  • [2, 3] With config timezone of your Rails app
  • [5] Date only no time included in result
瀞厅☆埖开 2024-10-18 12:27:54

这绝对有效,只要我需要在当前日期上添加天数,我就会使用它:

Date.today + 5

This definitely works and I use this wherever I need to add days to the current date:

Date.today + 5
青衫儰鉨ミ守葔 2024-10-18 12:27:54

在 Rails 上尝试这个

Time.new + 10.days 

在 Ruby 上尝试这个

require 'date'
DateTime.now.next_day(10).to_time

Try this on Rails

Time.new + 10.days 

Try this on Ruby

require 'date'
DateTime.now.next_day(10).to_time
跨年 2024-10-18 12:27:54

在 Ruby 上试试这个。
它将返回指定天数后的新日期/时间

DateTime.now.days_since(10)

Try this on Ruby.
It will return a new date/time the specified number of days in the future

DateTime.now.days_since(10)
悲歌长辞 2024-10-18 12:27:54

之间有一点区别:

Time.now + 10.days

3.0.1 :003 > 日期.今天 + 1.天
=> 2022 年 12 月 14 日星期三

或什至

10.days.from_now

3.0.1 :002 > 1.day.from_now
=> 2022-12-14 15:49:57.35305172 +0600

Little bit difference between:

Time.now + 10.days

3.0.1 :003 > Date.today + 1.day
=> Wed, 14 Dec 2022

or even

10.days.from_now

3.0.1 :002 > 1.day.from_now
=> 2022-12-14 15:49:57.35305172 +0600

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文