Comment afficher l'heure actuelle en JavaScript au format HH: MM: SS?


95

Pouvez-vous s'il vous plaît me dire comment régler l'heure dans ce format HH: MM: SS. Je veux définir cela dans un div?



1
Mais le problème est qu'il a PM et AP, je n'en ai pas besoin
.Deuxièmement

@ user2648752 vérifier ma réponse démo jsfiddle.net/cse_tushar/fKKSb
Tushar Gupta - curioustushar

1
Euh ... Pourquoi la question est-elle balisée avec une date , même si l'utilisateur demande l'heure?
Lloyd Dominic

Réponses:


104

function checkTime(i) {
  if (i < 10) {
    i = "0" + i;
  }
  return i;
}

function startTime() {
  var today = new Date();
  var h = today.getHours();
  var m = today.getMinutes();
  var s = today.getSeconds();
  // add a zero in front of numbers<10
  m = checkTime(m);
  s = checkTime(s);
  document.getElementById('time').innerHTML = h + ":" + m + ":" + s;
  t = setTimeout(function() {
    startTime()
  }, 500);
}
startTime();
<div id="time"></div>

DEMO utilisant javaScript uniquement

Mettre à jour

Updated Demo

(function () {
    function checkTime(i) {
        return (i < 10) ? "0" + i : i;
    }

    function startTime() {
        var today = new Date(),
            h = checkTime(today.getHours()),
            m = checkTime(today.getMinutes()),
            s = checkTime(today.getSeconds());
        document.getElementById('time').innerHTML = h + ":" + m + ":" + s;
        t = setTimeout(function () {
            startTime()
        }, 500);
    }
    startTime();
})();

110

Vous pouvez utiliser la fonction native Date.toLocaleTimeString():

var d = new Date();
var n = d.toLocaleTimeString();

Cela affichera par exemple:

"11:33:01"

Je l'ai trouvé sur http://www.w3schools.com/jsref/jsref_tolocaletimestring.asp


5
Je pense que cela devrait être la réponse acceptée, car elle répond exactement à la question, utilise la fonction native et est le code de travail le plus court pour obtenir ce qui est demandé.
vchrizz

10
15 h 59 min 45 s, c'est ce que ça m'a donné. Ce n'est pas le format demandé.
Ivan

toLocaleTimeString n'est pas une fonction
Utilisateur

58

Vous pouvez le faire en Javascript.

var time = new Date();
console.log(time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds());

À l'heure actuelle, il revient 15:5:18. Notez que si l'une des valeurs est inférieure à 10, elle s'affichera en utilisant un seul chiffre, pas deux.

Vérifiez cela dans JSFiddle

Mises à jour:
pour essayer les 0 avec le préfixe

var time = new Date();
console.log(
    ("0" + time.getHours()).slice(-2)   + ":" + 
    ("0" + time.getMinutes()).slice(-2) + ":" + 
    ("0" + time.getSeconds()).slice(-2));

Veuillez répondre à cette question. stackoverflow.com/questions/18227667/…
user2648752

Veuillez répondre à cette question dont j'ai besoin pour afficher l'heure dans la première colonne.
user2648752

oui Mais je dois ajouter trois colonnes comme écrit en question .Veuillez lire la question monsieur .Je dois ajouter du temps sur la première colonne et des données en temps réel sur la deuxième colonne
user2648752

Vous devez tenir compte des minutes et secondes <10, comme Tushar l'a fait dans sa réponse, sinon il ne montrera pas un "0" non significatif.
keepitreal

@CleverGirl J'essayais de donner une réponse simple alors j'ai écrit ça. Puisque vous avez mentionné les 0 préfixés, j'aimerais faire cela avec la réponse de @ user113716 qui a été représentée très clairement.
Praveen

40

Vous pouvez utiliser moment.js pour ce faire.

var now = new moment();
console.log(now.format("HH:mm:ss"));

Les sorties:

16:30:03

4
Merci Remus. Je ne tomberai plus jamais dans le terrier sans gloire des manipulations datetime js.
matlembo

Merci mec! Tout le monde rend tout si compliqué! C'est la réponse la plus succincte pour quelqu'un qui a besoin de saisir une ligne de code rapide pour une chose simple!
ChairmanMeow

5
Cachez les quelque 120 octets nécessaires pour ce faire en incluant un script de 20k +! genius
frumbert

1
Hé, je ne dis pas que vous devriez toujours l'utiliser, mais si vous l'êtes déjà, pourquoi ne pas le faire facilement 😉
brandonscript

27
new Date().toTimeString().slice(0,8)

Notez que toLocaleTimeString () peut renvoyer quelque chose comme 9:00:00 AM.


1
C'est la première fois que je vois quelqu'un créer un exemple de code pour instancier une date sans nouvelle Date () ... est-ce normal d'utiliser (nouvelle Date)?
OG Sean

5

Utilisez de cette façon:

var d = new Date();
localtime = d.toLocaleTimeString('en-US', { hour12: false });

Résultat: 18:56:31


2

function realtime() {
  
  let time = moment().format('h:mm:ss a');
  document.getElementById('time').innerHTML = time;
  
  setInterval(() => {
    time = moment().format('h:mm:ss a');
    document.getElementById('time').innerHTML = time;
  }, 1000)
}

realtime();
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>

<div id="time"></div>

Une manière très simple d'utiliser moment.js et setInterval .

setInterval(() => {
  moment().format('h:mm:ss a');
}, 1000)

Exemple de sortie

En utilisant une valeur setInterval()de 1000 ms ou 1 seconde, la sortie sera actualisée toutes les 1 seconde.

15:25:50

C'est ainsi que j'utilise cette méthode sur l'un de mes projets parallèles.

setInterval(() => {
  this.time = this.shared.time;
}, 1000)

Vous vous demandez peut-être si vous utilisez setInterval() causerait des problèmes de performances.

SetInterval est-il consommateur d'UC?

Je ne pense pas que setInterval va intrinsèquement vous causer des problèmes de performances significatifs. Je soupçonne que la réputation peut venir d'une époque antérieure, lorsque les processeurs étaient moins puissants. ... - jour solitaire

Non, setInterval n'est pas gourmand en CPU en soi. Si vous avez beaucoup d'intervalles exécutés sur des cycles très courts (ou une opération très complexe exécutée sur un intervalle modérément long), cela peut facilement devenir gourmand en ressources processeur, en fonction de ce que font exactement vos intervalles et de la fréquence à laquelle ils le font. ... - aroth

Mais en général, utiliser setInterval comme beaucoup de choses sur votre site peut ralentir les choses. 20 intervalles simultanés avec un travail plus ou moins lourd affecteront le spectacle. Et puis encore ... vous pouvez vraiment gâcher n'importe quelle partie, je suppose que ce n'est pas un problème de setInterval. ... - jAndy


2
new Date().toLocaleTimeString('it-IT')

Les it-ITparamètres régionaux remplissent l'heure si nécessaire et omettent PM ou AM01:33:01


Qu'est-ce que ce code répond uniquement à l'offre sur les solutions existantes qui montrent comment l'utiliser .toLocaleTimeString()?
Jason Aller

la partie 'it-IT' signifie qu'elle sort exactement comme demandé console.log (event.toLocaleTimeString ('it-IT')); // sortie attendue: 01:15:30 si vous n'incluez pas 'it-IT' alors vous obtenez quelque chose comme 1:15:30 PMqui manque le 0 initial et ajoute `PM` que vous auriez à supprimer autrement. J'ai modifié ma réponse pour clarifier cela.
iamnotsam

1

Ce code affichera l'heure actuelle au format HH: MM: SS dans la console, il prend en compte les fuseaux horaires GMT.

var currentTime = Date.now()
var GMT = -(new Date()).getTimezoneOffset()/60;
var totalSeconds = Math.floor(currentTime/1000);
seconds = ('0' + totalSeconds % 60).slice(-2);
var totalMinutes = Math.floor(totalSeconds/60);
minutes = ('0' + totalMinutes % 60).slice(-2);
var totalHours = Math.floor(totalMinutes/60);
hours = ('0' + (totalHours+GMT) % 24).slice(-2);
var timeDisplay = hours + ":" + minutes + ":" + seconds;
console.log(timeDisplay);
//Output is: 11:16:55

0

Ceci est un exemple de la façon de définir l'heure dans un div (only_time) à l'aide de javascript.

function date_time() {
    var date = new Date();
    var am_pm = "AM";
    var hour = date.getHours();
    if(hour>=12){
        am_pm = "PM";
    }
    if (hour == 0) {
        hour = 12;
    }
    if(hour>12){
        hour = hour - 12;
    }
    if(hour<10){
        hour = "0"+hour;
    }

    var minute = date.getMinutes();
    if (minute<10){
        minute = "0"+minute;
    }
    var sec = date.getSeconds();
    if(sec<10){
        sec = "0"+sec;
    }

    document.getElementById("time").innerHTML =  hour+":"+minute+":"+sec+" "+am_pm;
}
setInterval(date_time,500);
<per>
<div class="date" id="time"></div>
</per>

Bien que ce bloc de code puisse répondre à la question, il serait préférable que vous fournissiez une petite explication pour expliquer pourquoi il le fait.
Peter
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.