-1
votes

Ruby: Comment faire du temps variable de temps à minuit

en rubis Comment puis-je faire une variable temporelle à minuit?

Par exemple Comment puis-je obtenir la variable horaire suivante: xxx

de celui-ci? < / p> xxx merci


5 commentaires

Je ne comprends pas la question. De quelle manière vous voulez faire l'arrondi? Un timbre d'une fois est minuit, l'autre est deux heures et demie du matin. Et, parlez-vous des cordes que vous avez postées ou parlez-vous d'objets de classe heure ou de classe date ou de classe datetime .


Qu'êtes-vous arrondir des règles? Un conditionnel devrait faire ce dont vous avez besoin.


J'ai évité votre question, pas seulement parce que cela n'est pas clair, mais principalement parce que vous avez refusé de le clarifier malgré les deux membres qui vous demandent de le faire (ce qui leur est également irrespectueux pour eux et en général). Je vais rétracter mon bowvote si vous clarifiez avec une édition.


Analogue à 2.6.Round # => 3 et 2.6.trunate # => 2 , si on me demande rond temps à minuit Je choisirais le Minuit le plus proche Minuit, pas la dernière minuit sur ou avant l'heure donnée. Veuillez modifier pour clarifier ce que vous entendez par «rond».


La question est mal posée. S'il vous plaît voir " Comment demander ", " Liste de contrôle des questions de dépassement de piles " et " MCVE " et toutes leurs pages liées.


3 Réponses :


3
votes

Une fois créé, l'heure code> ne peut pas être modifié. Vous devez créer un nouvel instance em>, par ex. Donné: xxx pré>

vous pouvez appeler TIME.UTC CODE> Passer l'année, mois et jour de l'objet: P>

Time.utc(t.year, t.month, t.day)
#=> 2020-01-07 00:00:00 UTC


3 commentaires

Premier ajustement t Si l'idée est de tourner à minuit la plus proche: t + = 12 * 60 * 60 .


@CarySwoveland La question quitte la salle d'interprétation. Je pensais que l'Op voulait juste régler des heures, des minutes et des secondes à 0. Plus d'exemples ou une meilleure explication aiderait.


La question est mal posée et doit être clarifiée. Répondant auparavant que cela a été fait des résultats dans la confusion.



0
votes

Si vous utilisez ActiveSupport em> Vous pouvez utiliser TIME # Changer CODE> .

time_2 = time_1.beginning_of_day
#=> 2020-01-07 00:00:00 UTC


1 commentaires

Ou time_1.midnight



0
votes

ou vous pouvez convertir en temps à ce jour.

Time.now.to_date.to_time


2 commentaires

La question vous donne un objet à modifier. Pourquoi ignorez-vous cela et en utilisant temps.now ? Cela donne le temps à minuit précédents (à moins que l'heure donnée ne soit minuit, dans laquelle ce temps est retourné). La question ne définit pas "tour"; Ce pourrait être le précédent minuit ou le plus proche minuit.


Notez que cela produira 00:00:00 dans le fuseau horaire actuel. temps.Utc (2020, 1, 7, 2, 33, 1) .to_date.to_time # => 2020-01-07 00:00:00 +0100