web-dev-qa-db-fra.com

Comment ajouter 10 jours à l'heure actuelle dans Rails

J'ai essayé de faire quelque chose comme 

Time.now + 5.days

mais cela ne fonctionne pas, même si je me souviens vaguement d'avoir vu et d'être très impressionné de pouvoir faire quelque chose comme 2.years etc. 

Comment puis-je faire cela dans Rails 3?

96
Yuval Karmi

Utilisation 

Time.now + 10.days

ou même

10.days.from_now

Les deux fonctionnent vraiment. Êtes-vous sûr que vous êtes dans Rails et pas seulement Ruby?

Si vous êtes vraiment dans Rails, d'où essayez-vous d'exécuter cela? Notez que le support actif doit être chargé.

255
gunn

days, years, etc., font partie du support actif. Cela ne fonctionnera donc pas dans irb, mais dans Rails console.

18
Jonathan Julian

Cela fonctionne vraiment et je l'utilise partout où j'ai besoin d'ajouter des jours à la date actuelle: 

Date.today() + 5
8
dj kaori

Quelques autres options, juste pour référence

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

Il suffit de lister toutes les options que je connais:

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

Alors maintenant, quelle est la différence entre eux si nous nous soucions du fuseau horaire:

  • [1, 4] Avec le fuseau horaire du système
  • [2, 3] Avec le fuseau horaire de configuration de votre application Rails
  • [5] Date seulement aucune heure incluse dans le résultat
5
Hieu Pham

Essayez ceci sur Rails

Time.new + 10.days 

Essayez ceci sur Ruby

require 'date'
DateTime.now.next_day(10).to_time
1
Rahul Patel

Essayez ceci sur Ruby . Il renverra une nouvelle date/heure du nombre de jours spécifié

DateTime.now.days_since(10)
0
Ramyani