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.

TIMEX
la source

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();
jtsao22
la source
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;

}
Ionică Bizău
la source
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.

user2513149
la source
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.

ghchinoy
la source
8

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

const date = new Date();
let hours = date.getHours();
p2lem8dev
la source
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"
Pablo Andres Diaz Mazzaro
la source
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

Josh
la source
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!");
}
Moto acide
la source
-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.

Vikash Rajpurohit
la source