En el navegador, podemos hacer que el reloj en vivo se muestre en una sola línea usando setInterval y reemplazando el contenido dentro del elemento HTML de esta manera:
var span = document.getElementById('span'); function time() { var d = new Date(); var s = d.getSeconds(); var m = d.getMinutes(); var h = d.getHours(); span.textContent = ("0" + h).substr(-2) + ":" + ("0" + m).substr(-2) + ":" + ("0" + s).substr(-2); } setInterval(time, 1000);
<span id="span"></span>
Pero, ¿cómo podemos hacer lo mismo en terminal consola con NodeJS? Si usamos console.log y setInterval, creará una nueva línea. Como esto:
07:00:01 07:00:02 07:00:03 07:00:04
Solo quiero mostrar el reloj en vivo de console.log en una sola línea en la terminal.
Quiere usar \r
para terminar la línea anterior con stdout.
setInterval(() => process.stdout.write(`${new Date()}\r`), 1000);