¿Cómo obtengo la fecha actual en JavaScript?
new Date()
devuelve la hora actual , no la fecha actual . La distinción es importante si está tratando de compararla con otra fecha que no tiene un componente de tiempo (es decir, es a medianoche).
¿Cómo obtengo la fecha actual en JavaScript?
new Date()
devuelve la hora actual , no la fecha actual . La distinción es importante si está tratando de compararla con otra fecha que no tiene un componente de tiempo (es decir, es a medianoche).
Respuestas:
Utilícelo new Date()
para generar un nuevo Date
objeto que contenga la fecha y hora actuales.
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();
today = mm + '/' + dd + '/' + yyyy;
document.write(today);
Esto le dará la fecha de hoy en el formato de mm / dd / aaaa.
Simplemente cambie today = mm +'/'+ dd +'/'+ yyyy;
al formato que desee.
01
, 02
, ...,09
Date.prototype.toLocaleDateString()
método es una solución más flexible. Es parte de JavaScript desde ECMAScript 5.1 y está bien soportado por los navegadores de hoja perenne. MDN:toLocaleDateString()
var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);
Use la replace
opción si va a reutilizar la utc
variable new Date(utc)
, como Firefox y Safari no reconocen una fecha con guiones.
toUTCString()
vuelve como utc datetime.
moment( new Date().toJSON().slice(0, 10) )
¡ACTUALIZADO! , Desplazarse hacia abajo
Si quieres algo simple y bonito para el usuario final ... Also, fixed a small suffix issue in the first version below. Now properly returns suffix.
var objToday = new Date(),
weekday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'),
dayOfWeek = weekday[objToday.getDay()],
domEnder = function() { var a = objToday; if (/1/.test(parseInt((a + "").charAt(0)))) return "th"; a = parseInt((a + "").charAt(1)); return 1 == a ? "st" : 2 == a ? "nd" : 3 == a ? "rd" : "th" }(),
dayOfMonth = today + ( objToday.getDate() < 10) ? '0' + objToday.getDate() + domEnder : objToday.getDate() + domEnder,
months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
curMonth = months[objToday.getMonth()],
curYear = objToday.getFullYear(),
curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? "0" + objToday.getHours() : objToday.getHours()),
curMinute = objToday.getMinutes() < 10 ? "0" + objToday.getMinutes() : objToday.getMinutes(),
curSeconds = objToday.getSeconds() < 10 ? "0" + objToday.getSeconds() : objToday.getSeconds(),
curMeridiem = objToday.getHours() > 12 ? "PM" : "AM";
var today = curHour + ":" + curMinute + "." + curSeconds + curMeridiem + " " + dayOfWeek + " " + dayOfMonth + " of " + curMonth + ", " + curYear;
document.getElementsByTagName('h1')[0].textContent = today;
<h1></h1>
ACTUALIZACIÓN DE UBBER Después de muchas dilaciones, finalmente he GitHubbed y actualicé esto con la solución final que he estado usando para mí. ¡Incluso ha tenido algunas ediciones de último minuto para hacerlo más dulce! Si está buscando el viejo jsFiddle, vea esto .
Esta actualización viene en 2 sabores, aún relativamente pequeña, aunque no tan pequeña como mi respuesta original anterior. Si quieres extremadamente pequeño, ve con eso.
También tenga en cuenta: Esto todavía está menos hinchado que moment.js. Si bien moment.js es agradable, en mi opinión, tiene demasiados métodos seculares, que requieren un momento de aprendizaje como si fuera un lenguaje. El mío aquí usa el mismo formato común que PHP: fecha .
Sabor 1
new Date().format(String)
Mi favorito personal. Conozco el tabú pero funciona muy bien en el objeto Fecha. Solo tenga en cuenta cualquier otra modificación que pueda tener para el Objeto de fecha.
// use as simple as
new Date().format('m-d-Y h:i:s'); // 07-06-2016 06:38:34
Sabor 2
dateFormat(Date, String)
Método todo en uno más tradicional. Tiene toda la capacidad de lo anterior, pero se llama a través del método con Date param.
// use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s'); // 07-06-2016 06:38:34
BONUS Flavor (requiere jQuery)
$.date(Date, String)
Esto contiene mucho más que una simpleformat
opción. Extiende el objeto Fecha base e incluye métodos comoaddDays
. Para obtener más información, consulte el Git .
En este mod, los caracteres de formato están inspirados en PHP: fecha . Para obtener una lista completa, consulte mi LÉAME
Este mod también tiene una lista mucho más larga de formatos prefabricados. Para usar un formato prefabricado, simplemente ingrese su nombre clave.dateFormat(new Date(), 'pretty-a');
Como puedes notar, puedes usar el doble \
para escapar de un personaje.
Lo mas corto posible.
Para obtener un formato como "2018-08-03":
let today = new Date().toISOString().slice(0, 10)
console.log(today)
Para obtener un formato como "8/3/2018":
let today = new Date().toLocaleDateString()
console.log(today)
Además, puede pasar la configuración regional como argumento, por ejemplo toLocaleDateString("sr")
, etc.
Si solo desea una fecha sin información de hora, use:
var today = new Date();
today.setHours(0, 0, 0, 0);
document.write(today);
Prueba esto:
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
El resultado será como
15/2/2012
Si está buscando un control mucho más granular sobre los formatos de fecha, le recomiendo consultar momentjs. Excelente biblioteca, y solo 5 KB. http://momentjs.com/
Puede usar moment.js: http://momentjs.com/
var m = moment().format("DD/MM/YYYY");
document.write(m);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
moment().format("L")
para respetar el entorno local actual.
var d = (new Date()).toString().split(' ').splice(1,3).join(' ');
document.write(d)
Para dividirlo en pasos:
(new Date()).toString()
da "Vie 28 de junio 2013 15:30:18 GMT-0700 (PDT)"
(new Date()).toString().split(' ')
divide la cadena anterior en cada espacio y devuelve una matriz de la siguiente manera: ["Fri", "Jun", "28", "2013", "15:31:14", "GMT-0700", "(PDT)" ]
(new Date()).toString().split(' ').splice(1,3).join(' ')
toma los valores segundo, tercero y cuarto de la matriz anterior, los une con espacios y devuelve una cadena "28 de junio de 2013"
Date().split(' ').splice(1,3).join(' ')
Esto funciona cada vez:
var now = new Date();
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var today = now.getFullYear() + "-" + (month) + "-" + (day);
console.log(today);
var date = new Date().toLocaleDateString("en-US");
Además, puede llamar al método toLocaleDateString
con dos parámetros:
var date = new Date().toLocaleDateString("en-US", {
"year": "numeric",
"month": "numeric"
});
new Date().toLocaleDateString("de-de")
hace el truco para mí
Versión más simple y limpia:
new Date().toLocaleString();
El resultado varía según la configuración regional del usuario :
2/27/2017, 9:15:41 AM
Si está satisfecho con el formato AAAA-MM-DD, esto también hará el trabajo.
new Date().toISOString().split('T')[0]
2018-03-10
Puede usar la biblioteca Date.js que extiende el objeto Date, por lo tanto, puede tener el método .today ().
Puede obtener la fecha actual, llame al método estático ahora de esta manera:
var now = Date.now()
referencia:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now
var dtToday = new Date(date.now);
La respuesta de Varun no tiene en cuenta TimezoneOffset . Aquí hay una versión que hace:
var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11
Los TimezoneOffset
minutos son, mientras que el constructor Fecha toma milisegundos, por lo tanto, la multiplicación por 60000
.
La respuesta más corta es: new Date().toJSON().slice(0,10)
new Date().toDateString();
Resultado:
"Mié 03 feb 2016"
Como toISOString()
solo devolverá la hora UTC actual, no la hora local. Tenemos que hacer una fecha usando la función '.toString ()' para obtener la fecha en yyyy-MM-dd
formato como
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('T')[0]);
Para poner la fecha y la hora en yyyy-MM-ddTHH:mm:ss
formato
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0]);
Para poner la fecha y la hora en yyyy-MM-dd HH:mm:ss
formato
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));
Si desea un DD/MM/YYYY
formato simple , acabo de encontrar esta solución simple, aunque no prefija los ceros faltantes.
var d = new Date();
document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );
new Date().toISOString().slice(0,10);
funcionaría también
ÚLTIMA EDICIÓN: 23/08/19 La biblioteca date-fns funciona de manera muy parecida a moment.js pero tiene una huella mucho menor. Le permite elegir qué funciones desea incluir en su proyecto para que no tenga que compilar toda la biblioteca para formatear la fecha de hoy. Si una lib mínima de terceros no es una opción para su proyecto, apruebo la solución aceptada por Samuel Meddows en la parte superior.
Preservar la historia a continuación porque ayudó a algunas personas. Pero para el registro es bastante hacky y es probable que se rompa sin previo aviso, como lo son la mayoría de las soluciones en esta publicación
EDITAR 2/7/2017 Una solución JS de una línea:
tl; dr
var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];
edge, ff latest, y chrome returntodaysDate = "2/7/2017"
"funciona" * en IE10 +
Explicación
Descubrí que IE10 e IE Edge hacen las cosas un poco diferentes ... imagínense. con new Date(Date.now()).toLocaleString()
como entrada,
IE10 devuelve:
"Tuesday, February 07, 2017 2:58:25 PM"
Podría escribir una gran función larga y FTFY. Pero realmente deberías usar moment.js para estas cosas. Mi script simplemente limpia esto y le brinda la notación tradicional expandida de los Estados Unidos:> todaysDate = "March 06, 2017"
IE EDGE devuelve:
"2/7/2017 2:59:27 PM"
Por supuesto que no podría ser tan fácil. La cadena de fecha de Edge tiene caracteres invisibles "•" entre cada uno visible. Entonces, no solo estaremos verificando si el primer carácter es un número, sino los primeros 3 caracteres, ya que resulta que cualquier carácter individual en todo el rango de fechas eventualmente será un punto o una barra diagonal en algún momento. Para mantener las cosas simples, solo .slice () los primeros tres caracteres (pequeño búfer contra futuras travesuras) y luego verifique los números. Probablemente debería notarse que estos puntos invisibles podrían potencialmente persistir en su código. Tal vez me gustaría profundizar en eso si tienes planes más grandes que simplemente imprimir esta cadena a tu vista.
∴ one-liner actualizado:
var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];
Eso apesta a leer. Qué tal si:
var dateString = new Date(Date.now()).toLocaleString();
var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];
RESPUESTA ORIGINAL
Tengo una frase para ti:
new Date(Date.now()).toLocaleString().split(', ')[0];
y [1]
te dará la hora del día.
Puedes usar esto
<script>
function my_curr_date() {
var currentDate = new Date()
var day = currentDate.getDate();
var month = currentDate.getMonth() + 1;
var year = currentDate.getFullYear();
var my_date = month+"-"+day+"-"+year;
document.getElementById("dateField").value=my_date;
}
</script>
El HTML es
<body onload='return my_curr_date();'>
<input type='text' name='dateField' id='dateField' value='' />
</body>
Si está utilizando jQuery. Prueba este delineador:
$.datepicker.formatDate('dd/mm/yy', new Date());
Aquí está la convención para formatear la fecha
Aquí está la referencia para jQuery datepicker
Una forma directa de lograrlo (teniendo en cuenta su zona horaria actual, aprovechando el formato ISO aaaa-mm-dd) es:
let d = new Date().toISOString().substring(0,19).replace("T"," ") // "2020-02-18 16:41:58"
Por lo general, este es un formato de fecha compatible bastante universal y puede convertirlo a un valor de fecha puro si es necesario:
Date.parse(d); // 1582044297000
¿Cuál es el problema con esto? La forma más limpia de hacerlo es
var currentDate=new Date().toLocaleString().slice(0,10);
3/4/2018,
, mejor usar new Date().toJSON().slice(0,10)
.
.slice(0,10)
Esto puede ayudarte
var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());
Esto imprimirá la fecha actual en formato dd / MM / aaaa
Esto es bueno para obtener la fecha formateada
let date = new Date().toLocaleDateString("en", {year:"numeric", day:"2-digit", month:"2-digit"});
console.log(date);
Creo que esta es una vieja pregunta, pero la forma más fácil sería la siguiente:
var date = new Date();
var TimeStamp = date.toLocaleString();
function CurrentTime(){
alert(TimeStamp);
}
Esto tomará la hora actual, la pasará a una cadena en función de la ubicación y luego podrá llamar a la función CurrentTime para mostrar la hora. Esta sería, para mí, la forma más efectiva de obtener una marca de tiempo para algo.
var currentTime = new Date();