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?
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é.
days
, years
, etc., font partie du support actif. Cela ne fonctionnera donc pas dans irb
, mais dans Rails console
.
Cela fonctionne vraiment et je l'utilise partout où j'ai besoin d'ajouter des jours à la date actuelle:
Date.today() + 5
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ésultatEssayez ceci sur Rails
Time.new + 10.days
Essayez ceci sur Ruby
require 'date'
DateTime.now.next_day(10).to_time
Essayez ceci sur Ruby . Il renverra une nouvelle date/heure du nombre de jours spécifié
DateTime.now.days_since(10)