Comment obtenir l'heure de la journée dans javascript / Node.js?


101

Je veux avoir 1 à 24 , 1 étant 1h du matin, heure du Pacifique.

Comment puis-je obtenir ce numéro dans Node.JS?

Je veux savoir quelle heure il est en ce moment, heure du Pacifique.

Réponses:


143

Vous devriez récupérer l' objet Date .

En particulier, vous pouvez consulter la méthode getHours () pour l'objet Date.

getHours () renvoie l'heure de 0 à 23, alors assurez-vous de la traiter en conséquence. Je pense que 0-23 est un peu plus intuitif puisque le temps militaire va de 0 à 23, mais c'est à vous de décider.

Dans cet esprit, le code serait quelque chose du genre:

var date = new Date();
var current_hour = date.getHours();

Si vous voulez arrondir avec des minutes (comme dans 1:45 -> 2:00), vous pouvez utiliser la méthode getMinutes () pour l'objet Date.
jtsao22

2
Lien vers MDN: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Ne pas créer de lien vers cette fausse poubelle "W3C Schools"
Max

151

Cette fonction vous renvoie la date et l' heure dans le format suivant: YYYY:MM:DD:HH:MM:SS. Cela fonctionne également dans Node.js.

function getDateTime() {

    var date = new Date();

    var hour = date.getHours();
    hour = (hour < 10 ? "0" : "") + hour;

    var min  = date.getMinutes();
    min = (min < 10 ? "0" : "") + min;

    var sec  = date.getSeconds();
    sec = (sec < 10 ? "0" : "") + sec;

    var year = date.getFullYear();

    var month = date.getMonth() + 1;
    month = (month < 10 ? "0" : "") + month;

    var day  = date.getDate();
    day = (day < 10 ? "0" : "") + day;

    return year + ":" + month + ":" + day + ":" + hour + ":" + min + ":" + sec;

}

10
Aww. (new Date()).toJSON().slice(0, 19).replace(/[-T]/g, ':')
user3125367

3
@ user3125367 Belle! Si la flexibilité est nécessaire dans le formatage de la date, la mienne peut mieux fonctionner. :-)
Ionică Bizău

@ user3125367 votre suggestion, bien que concise, n'est pas en fait la même. Je viens de le tester, et getDateTime () est retourné: 2020:06:10:10:12:35alors que le vôtre est revenu: 2020:06:10:00:12:35 il semble qu'il n'a pas pris en compte les ajustements de fuseau horaire.
John Forbes

17

Consultez la moment.jsbibliothèque. Il fonctionne aussi bien avec les navigateurs qu'avec Node.JS. Vous permet d'écrire

moment().hour();

ou

moment().hours();

sans écriture préalable d'aucune fonction.


13

Les deux réponses précédentes sont définitivement de bonnes solutions. Si vous êtes prêt à utiliser une bibliothèque, j'aime moment.js - il fait beaucoup plus que simplement obtenir / formater la date.


8

Il existe une méthode native pour travailler avec la date

const date = new Date();
let hours = date.getHours();

6
Cela semble être une amélioration très mineure qui nuit à la lisibilité.
Benjamin Lowry

3

Si vous ne voulez que la chaîne de temps, vous pouvez utiliser cette expression (avec un simple RegEx):

new Date().toISOString().match(/(\d{2}:){2}\d{2}/)[0]
// "23:00:59"

0
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
month = (month < 10 ? "0" : "") + month;
var hour = date.getHours();
hour = (hour < 10 ? "0" : "") + hour;
var day  = date.getDate();
day = (hour > 12 ? "" : "") + day - 1;
day = (day < 10 ? "0" : "") + day;
x = ":"
console.log( month + x + day + x + year )

Il affichera la date dans le mois, le jour, puis l'année


0

Pour mon exemple, je l'ai utilisé comme un global, puis je l'ai appelé pour vérifier l'heure des heures de fonctionnement.

Ci-dessous est de mon index.js

global.globalDay = new Date().getDay(); 

global.globalHours = new Date().getHours();

Pour appeler la valeur globale à partir d'un autre fichier

    /*
     Days of the Week.
     Sunday = 0, Monday = 1, Tuesday = 2, Wensday = 3, Thursday = 4, Friday = 5, Saturday = 6

     Hours of the Day.
     0 = Midnight, 1 = 1am, 12 = Noon, 18 = 6pm, 23 = 11pm
     */

if (global.globalDay === 6 || global.globalDay === 0) {
     console.log('Its the weekend.');
} else if (global.globalDay > 0 && global.globalDay < 6 && global.globalHours > 8 && global.globalHours < 18) {
     console.log('During Business Hours!');
} else {
     console.log("Outside of Business hours!");
}

-1

Pour démarrer votre nœud dans le fuseau horaire PST, utilisez la commande suivante dans ubuntu.

TZ=\"/usr/share/zoneinfo/GMT+0\" && export TZ && npm start &

Ensuite, vous pouvez consulter la bibliothèque de dates pour obtenir les fonctions de date et d'heure de calcul personnalisées dans le nœud.

Pour l'utiliser côté client, référez-vous à ce lien , téléchargez index.js et assertHelper.js et incluez-le dans votre HTML.

<script src="assertHelper.js"></script>
<script type="text/javascript" src="index.js"></script>
$( document ).ready(function() {
    DateLibrary.getDayOfWeek(new Date("2015-06-15"),{operationType:"Day_of_Week"}); // Output : Monday
}

Vous pouvez utiliser différentes fonctions données dans les exemples pour obtenir des dates personnalisées.

Si le premier jour de la semaine est dimanche, quel jour sera le 15 juin 2015.

 DateLibrary.getDayOfWeek(new Date("2015-06-15"),
    {operationType:"Day_Number_of_Week",
        startDayOfWeek:"Sunday"}) // Output : 1

Si le premier jour de la semaine est le mardi, le numéro de la semaine de l'année suivra le 15 juin 2015 comme l'une des dates.

 DateLibrary.getWeekNumber(new Date("2015-06-15"),
    {operationType:"Week_of_Year",
        startDayOfWeek:"Tuesday"}) // Output : 24

Référez-vous à d'autres fonctions pour répondre à vos exigences de date personnalisées.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.