11
votes

Ruby - Changement de la date de la date d'une instance de temps

J'ai une instance de temps curr_time avec la valeur du temps.now et une autre chaîne cible_date avec la valeur, par exemple, "17 avril 2010". Comment puis-je obtenir la partie de date dans la variable Curr_Time Modifier à la valeur de Target_Date? XXX PRE>

Je veux changer de curr_Time pour changer comme suit: P>

>> curr_time
=> Sat Apr 17 23:37:27 +0530 2010


1 commentaires

Si vous utilisez Ruby sur Rails cependant, il y a une classe distincte avec un .Change () : api.rubyonrails.org/classes/time.html#method-i-changer


3 Réponses :


3
votes

Essayez celui-ci:

Time.parse(target_date) + curr_time.sec + curr_time.min * 60 + curr_time.hour * 60 * 60
=> Sat Apr 17 19:30:34 +0200 2010


2 commentaires

Je viens de modifier ma réponse (je ne vous ai pas bien compris la première fois ...).


Vous pouvez également l'énoncer comme: Time.Parse (Time.NOW.TO_Date.TO_S) + TIME.SEC.SECONDS + TIME.MIN.MINUTES + TIME.HOURS



11
votes

Les objets de temps sont immuables, vous devez donc créer un nouvel objet de temps avec les valeurs souhaitées. Comme ceci: xxx


0 commentaires

16
votes

Si vous utilisez ActiveSupportPort (par exemple dans un environnement environnement ou par xxx

)

Exemple d'objet de temps changeant. xxx


1 commentaires

Fonctionne uniquement sur les rails: api.rubyonrails.org/classes/time.html # méthode-i-change , très utile mais