Comment compter le nombre de jours entre ces deux dates?
start_date = Date.parse "2012-03-02 14:46:21 +0100"
end_date = Date.parse "2012-04-02 14:46:21 +0200"
Avec les classes Date (et DateTime), vous pouvez faire (end_date - start_date).to_i
pour obtenir le nombre de jours de différence.
Time
les objets renvoient cependant des secondes.Time
objets, pas à desDate
objets. Peut-être pourriez-vous mettre à jour la dénomination dans votre commentaire pour indiquer qu'il ne s'agit pas de dates?En supposant que
end_date
et qu'ilsstart_date
soient tous deux de classeActiveSupport::TimeWithZone
dans Rails, vous pouvez utiliser:la source
(Time.zone.now.to_date - 23.hours.ago.to_date).to_i
, il donne 1 et devrait être 0Time.zone.now.to_date
renvoie maintenant "Wed, 15 Nov 2017", tandis que23.hours.ago.to_date
renvoie "Tue, 14 Nov 2017". La différence en nombre de jours est et doit être de 1, sauf si vous avez exécuté votre code dans l'heure précédant minuit.Rails a des aides intégrées qui pourraient résoudre ce problème pour vous. Une chose à garder à l'esprit est que cela fait partie des Helpers Actionview, donc ils ne seront pas disponibles directement depuis la console.
Essaye ça
la source
J'ai continué à obtenir des résultats en quelques secondes, donc cela a fonctionné pour moi:
la source
1.day
n'est pasruby
comme OP demandé (dans les balises). C'estRails
ou plus spécifiqueactive support
sicreated_at
c'est fondamentalement uneModel
méthode dansRails
so ..pour obtenir le nombre de jours dans une plage horaire (juste un décompte de tous les jours)
pour obtenir le nombre de jours entre 2 dates
la source
Aucune des réponses précédentes (à ce jour) ne donne la différence correcte en jours entre deux dates.
Celui qui se rapproche le plus est celui- là . Une réponse complète convertirait
to_i
puis diviserait:Dans l'exemple spécifique de la question, il ne faut pas analyser
Date
si le temps écoulé est pertinent. UtilisezTime.parse
plutôt.la source
Pour avoir le nombre de jours entiers entre deux dates (
DateTime
objets):la source
Pour obtenir le nombre de jours de différence par deux dates:
la source
la source