Tengo un problema al agregar un salto de línea dentro de mi función. La función muestra la fecha y la hora. Necesito mostrar la fecha en la primera línea y la hora en la segunda. He comprobado todas las respuestas relacionadas. Intenté usar \ n, br, join ("\ n"), intenté crear el elemento br dentro de mi función, pero desafortunadamente no funcionó. Aquí hay una parte de mi código:

function getTime(a)
{ 
  var d;
  if(a) {
    d = new Date(a);
  } else {
    d = new Date();
  }
  return ('0' + d.getDate()).slice(-2) + '.'+
         ('0' + (d.getMonth() + 1)).slice(-2) + '.' + 
         (d.getYear() + 1900) + ' ' + // here instead of space I need to add a line break in order to display time on a new line 
         ('0' + d.getHours()).slice(-2) + ':' +
         ('0' + d.getMinutes()).slice(-2) + ':' + 
         ('0' + d.getSeconds()).slice(-2) + '.' + 
         d.getMilliseconds();
}

Por favor, dame una pista de cómo solucionar el problema. ¡Muchas gracias por adelantado!

-1
Sveta Maltseva 12 ene. 2017 a las 11:41
Supongo que está mostrando esto en una página web. ¿Está bien? Si es así, hizo bien en usar <br> y funciona como se esperaba: jsfiddle.net/wxpz8njf
 – 
Jamiec
12 ene. 2017 a las 11:49
Debe decirnos cómo se envía esta cadena para mostrar y en qué entorno o marco, si hay alguno. Supongo que hay uno, y que desinfecta la cadena antes de mostrarla (\n o <br> deberían funcionar, si no, lo más probable es que se eliminen con algo)
 – 
Kaddath
12 ene. 2017 a las 11:54
En lugar de d.getYear() + 1900, debería utilizar d.getFullYear(). El getYear de dos dígitos se introdujo efectivamente como obsoleto en ECMA-262 ed 1 en 1997. Por qué no se ha eliminado es un misterio.
 – 
RobG
13 ene. 2017 a las 01:45

1 respuesta

La mejor respuesta

Puede agregar un carácter de nueva línea:

function getTime(a)
{ 
  var d;
  if(a) {
    d = new Date(a);
  } else {
    d = new Date();
  }
  return ('0' + d.getDate()).slice(-2) + '.'+
         ('0' + (d.getMonth() + 1)).slice(-2) + '.' + 
         (d.getYear() + 1900) + '\n' + // here instead of space I need to add a line break in order to display time on a new line 
         ('0' + d.getHours()).slice(-2) + ':' +
         ('0' + d.getMinutes()).slice(-2) + ':' + 
         ('0' + d.getSeconds()).slice(-2) + '.' + 
         d.getMilliseconds();
}

console.log(getTime())

O si lo desea en el html interno de marcado, agregue <br>

    function getTime(a)
    { 
      var d;
      if(a) {
        d = new Date(a);
      } else {
        d = new Date();
      }
      return ('0' + d.getDate()).slice(-2) + '.'+
             ('0' + (d.getMonth() + 1)).slice(-2) + '.' + 
             (d.getYear() + 1900) + ' <br> ' + // here instead of space I need to add a line break in order to display time on a new line 
             ('0' + d.getHours()).slice(-2) + ':' +
             ('0' + d.getMinutes()).slice(-2) + ':' + 
             ('0' + d.getSeconds()).slice(-2) + '.' + 
             d.getMilliseconds();
    }

document.querySelector('.test').innerHTML = getTime()
<div class='test'></div>

Si está tratando con el marcado html, la etiqueta <br> es la forma correcta de mostrar un retorno de carro.

2
maioman 12 ene. 2017 a las 12:01
I have tried to use \n, br <- en la pregunta original
 – 
Jamiec
12 ene. 2017 a las 11:48
Actualice con CTRL + F5 porque este debería funcionar.
 – 
malutki5200
12 ene. 2017 a las 11:49
En una consola lo haría. En una página web no lo haría.
 – 
Jamiec
12 ene. 2017 a las 11:51
Sí, funciona bien, nunca dije que no. Lo que dije fue que acaba de dar una solución que el OP dice que ya ha probado. Vea mi comentario sobre la pregunta y ese es el motivo de mi votación cerrada.
 – 
Jamiec
12 ene. 2017 a las 11:58
Muchas gracias, un detalle que olvidé agregar es que uso la biblioteca svgware y uso este código dentro de ella, así que tal vez necesito cambiar el código svgware, pero no el código dentro de mi función
 – 
Sveta Maltseva
12 ene. 2017 a las 12:03