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?

user2648752
la source
Voici mon code .. jsfiddle.net/naveennsit/yd99X
user2648752
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();
})();
Tushar Gupta - Curioustushar
la source
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

pstryk
la source
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));
Praveen
la source
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
brandonscript
la source
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.

Thorsten
la source
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

Thomas
la source
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

Vadamadafaka
la source
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

iamnotsam
la source
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
Vanjavk
la source
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>
ASAbir
la source
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