Poner la hora a input text en view html con jquery (no Php)

publicado por: Anonymous

Como puedo poner por default la fecha de hoy a un input text al momento de ejecutar mi vista en html con jquery javascript?
Lo unico que he conseguido es este codigo, que si funciona pero no lo imprime en el input pero si en el cuerpo de la vista:

_x000D_

_x000D_

    <script>_x000D_
    var f = new Date();_x000D_
document.write(f.getDate() + "/" + (f.getMonth() +1) + "/" + f.getFullYear());_x000D_
    _x000D_
</script>

_x000D_

_x000D_

_x000D_

esto muestra la fecha suelta en el cuerpo de la vista, ahora si quiero pintarlo en el input e intento esto, se vuelve una especie de bucle y na no me muestra mi formulario solo la fecha, como se muestra en la imagen:

_x000D_

_x000D_

    <script>_x000D_
    $("#FechaActual").ready(function){_x000D_
    var f = new Date();_x000D_
document.write(f.getDate() + "/" + (f.getMonth() +1) + "/" + f.getFullYear());_x000D_
    _x000D_
    });    _x000D_
_x000D_
</script>

_x000D_

_x000D_

_x000D_

introducir la descripción de la imagen aquí

solución

Te coloco el siguiente ejemplo, donde puedes notar que para modificar
el valor de un input y que muestre la fecha por ejemplo; lo tienes que
hacer a través del método value.

  1. En la variable fecha, creo un nueva instancia de new Date()
  2. ahora con la variable fecha acceso a getFullYear() para obtener el año
  3. ahora con la variable fecha acceso a getMonth() para obtener el mes
  4. ahora con la variable fecha acceso a getDate() para obtener el dia

Para insertar el valor dinámico dentro del input, primero lo obtengo a
través de su id y lo asigno a la variable letrero; después hago
que esa variable letrero acceda al método value y declaro que eso es
igual a mi día, mes y año

_x000D_

_x000D_

<!DOCTYPE html>_x000D_
<html>_x000D_
<head>_x000D_
  <meta charset="utf-8">_x000D_
  <meta name="viewport" content="width=device-width">_x000D_
  <title>JS Bin</title>_x000D_
</head>_x000D_
<body>_x000D_
  <input type="text" id="fecha">_x000D_
<script>_x000D_
  const letrero = document.querySelector("#fecha")_x000D_
_x000D_
  const fecha = new Date();            _x000D_
  let anio = fecha.getFullYear()_x000D_
  let mes = fecha.getMonth()+1_x000D_
  let dia = fecha.getDate()_x000D_
_x000D_
_x000D_
  if(dia < 10){_x000D_
  dia='0'+dia_x000D_
  }_x000D_
  if(mes < 10){_x000D_
  mes='0'+mes_x000D_
  }_x000D_
  letrero.value = `${dia} / ${mes} / ${anio}`_x000D_
  _x000D_
</script>_x000D_
</body>_x000D_
</html>

_x000D_

_x000D_

_x000D_

El uso de template strings es para poder imprimir valores dinámicos
con cadenas de texto sin usar el signo de mas; lo que requieres es el
uso de las comillas invertidas y los valores dinámicos o mejor
conocidos como variables van con $ y entre llaves sencillas

Como notas le sumo uno a el mes, esto ocurre por que JS lee los meses
como un arreglo y empieza desde la posición cero, entonces hay que
sumarle uno para igualar al mes en el que estas ejecutando el código

Agregué solo dos condicionales (if), para que cual el día y mes es menor a 10 le agregue un cero al inicio y en vez de leer 4/4/2018, se lea 04/04/2018

Respondido por: user75901

Leave a Reply

Your email address will not be published. Required fields are marked *