2017-04-14 1 views

Répondre

4

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.

+0

Il est parfois la peine de vous demander puis prends un punt :). –

4

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 
2

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 
+0

«10.années» ou spécifiquement «années» est une méthode ajoutée par Rails et non trouvée dans le Ruby ordinaire. –

+0

Oui, vous avez raison, je vais changer ma réponse pour indiquer que cela ne peut être fait que si vous utilisez ActiveSupport. –