Dans ruby j'utilise DateTime.now.next_year.to_time
pour obtenir l'heure et la date d'un jour dans un an. Cela doit maintenant être changé en 10 ans. Comment puis-je faire ceci.Ruby: Comment ajouter 10 ans à DateTime.now
Répondre
Cela semble fonctionner:
DateTime.now.next_year(10).to_time
#=> 2027-04-14 20:40:38 +0000
Accepte les nombres négatifs aussi et fait ce que vous attendez.
La méthode Date#next_year prend un argument sur combien d'années pour faire avancer
DateTime.now.next_year(10).to_time
#=> 2027-04-14 16:41:09 -0400
Si vous ne me dérange pas en utilisant ActiveSupport, vous pouvez exiger de temps un soutien actif comme ceci:
require "active_support/time"
puis vous pourriez juste faire ceci pour obtenir un objet DateTime
de retour:
DateTime.now + 10.years
=> Thu, 15 Apr 2027 13:02:15 +0000
ou si vous voulez un objet Time
à la place: « Comment puis-je mettre en œuvre une telle fonctionnalité »
DateTime.now.to_time + 10.years
=> 2027-04-15 13:02:15 +0000
«10.années» ou spécifiquement «années» est une méthode ajoutée par Rails et non trouvée dans le Ruby ordinaire. –
Oui, vous avez raison, je vais changer ma réponse pour indiquer que cela ne peut être fait que si vous utilisez ActiveSupport. –
Il est parfois la peine de vous demander puis prends un punt :). –