Pregunta ¿Cómo obtengo la fecha actual en JavaScript?


¿Cómo obtengo la fecha actual en JavaScript?


1681
2017-10-07 11:39


origen


Respuestas:


Utilizar new Date() para generar un nuevo Date objeto que contiene la fecha y hora actual.

var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();

if(dd<10) {
    dd = '0'+dd
} 

if(mm<10) {
    mm = '0'+mm
} 

today = mm + '/' + dd + '/' + yyyy;
document.write(today);

Esto le dará la fecha de hoy en el formato de mm / dd / aaaa.

Simplemente cambia today = mm +'/'+ dd +'/'+ yyyy; al formato que desees


2003
2018-02-08 04:42



var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);

Utilizar el replace opción si vas a reutilizar el utc variable, como new Date(utc), ya que Firefox y Safari no reconocen una fecha con guiones.


340
2017-09-29 14:13



¡ACTUALIZADO!, Desplácese 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>

UBBER UPDATE Después de mucha procrastinación, finalmente 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ás buscando el viejo jsFiddle, mira esto.

Esta actualización viene 2 sabores, aún relativamente pequeños, aunque no tan pequeños como mi respuesta anterior, original. Si quieres extremadamente pequeño, ve con eso.
 También Nota: Esto es aún menos hinchado que moment.js. Mientras que moment.js es agradable, imo, tiene muchos 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.

enlaces rápidos

Sabor 1 new Date().format(String)   Mi Personal Fav. Conozco el tabú, pero funciona muy bien en Date Object. Solo tenga en cuenta cualquier otro mod que pueda tener con el objeto Date.

//  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 del 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

Sabor BONUS (requiere jQuery) $.date(Date, String)   Esto contiene mucho más que solo un simple format opción. Extiende el objeto base Fecha e incluye métodos tales como addDays. Para obtener más información, consulte el Git.

En este mod, los caracteres de formato están inspirados en PHP: fecha. Para una lista completa, por favor mira mi README

Este mod también tiene una lista mucho más larga de formatos prefabricados. Para usar un formato prefabricado, simplemente ingrese su nombre de clave. dateFormat(new Date(), 'pretty-a');

  • 'compuesto'
    • 'commonLogFormat' == 'd / M / Y: G: i: s'
    • 'exif' == 'Y: m: d G: i: s'
    • 'isoYearWeek' == 'Y \\ WW'
    • 'isoYearWeek2' == 'Y - \\ WW'
    • 'isoYearWeekDay' == 'Y \\ WWj'
    • 'isoYearWeekDay2' == 'Y - \\ WW-j'
    • 'mySQL' == 'Y-m-d h: i: s'
    • 'postgreSQL' == 'Y.z'
    • 'postgreSQL2' == 'Yz'
    • 'jabón' == 'Y-m-d \\ TH: i: s.u'
    • 'soap2' == 'Y-m-d \\ TH: i: s.uP'
    • 'unixTimestamp' == '@U'
    • 'xmlrpc' == 'Ymd \\ TG: i: s'
    • 'xmlrpcCompact' == 'Ymd \\ tGis'
    • 'wddx' == 'Y-n-j \\ TG: i: s'
  • 'constantes'
    • 'AMERICAN' == 'F j Y'
    • 'AMERICANSHORT' == 'm / d / Y'
    • 'AMERICANSHORTWTIME' == 'm / d / Y h: i: sA'
    • 'ATOM' == 'Y-m-d \\ TH: i: sP'
    • 'COOKIE' == 'l d-M-Y H: i: s T'
    • 'EUROPEO' == 'j F Y'
    • 'EUROPEANSHORT' == 'd.m.Y'
    • 'EUROPEANSHORTWTIME' == 'd.m.Y H: i: s'
    • 'ISO8601' == 'Y-m-d \\ TH: i: sO'
    • 'LEGAL' == 'j F Y'
    • 'RFC822' == 'D d M y H: i: s O'
    • 'RFC850' == 'l d-M-y H: i: s T'
    • 'RFC1036' == 'D d M y H: i: s O'
    • 'RFC1123' == 'D d M Y H: i: s O'
    • 'RFC2822' == 'D d M Y H: i: s O'
    • 'RFC3339' == 'Y-m-d \\ TH: i: sP'
    • 'RSS' == 'D d M Y H: i: s O'
    • 'W3C' == 'Y-m-d \\ TH: i: sP'
  • 'bonita'
    • 'bonita-a' == 'g: i.sA l jS \\ o \\ f F Y'
    • 'pretty-b' == 'g: iA l jS \\ o \\ f F Y'
    • 'pretty-c' == 'n / d / Y g: iA'
    • 'pretty-d' == 'n / d / Y'
    • 'pretty-e' == 'F jS - g: ia'
    • 'bonita-f' == 'g: iA'

Como puede notar, puede usar el doble \ escapar de un personaje.



187
2018-02-10 14:33



Si solo quieres una fecha sin información de tiempo, utiliza:

var today = new Date();
    today.setHours(0, 0, 0, 0);

document.write(today);


115
2017-09-02 06:14



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

90
2018-02-15 08:48



Lo más corto posible:

let today = new Date().toISOString().slice(0, 10)

Vuelve "2016-03-10"


61
2018-03-10 16:30



Si está buscando un control mucho más detallado sobre los formatos de fecha, le recomiendo que revise los momentos. Biblioteca fabulosa, y solo 5 KB. http://momentjs.com/


57
2017-12-12 01:03



Puedes 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>


45
2017-08-16 11:56



var d = (new Date()).toString().split(' ').splice(1,3).join(' ');

document.write(d)

Para dividirlo en pasos:

  1. (new Date()).toString() da "viernes 28 de junio de 2013 15:30:18 GMT-0700 (PDT)"

  2. (new Date()).toString().split(' ') divide la cadena de arriba en cada espacio y devuelve una matriz de la siguiente manera: ["Fri", "Jun", "28", "2013", "15:31:14", "GMT-0700", "(PDT)" ]

  3. (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"


41
2018-06-28 22:32



var date = new Date().toLocaleDateString("en-US");

Además, puedes llamar al método toLocaleDateString con dos parámetros:

var date = new Date().toLocaleDateString("en-US", {
    "year": "numeric",
    "month": "numeric"
});

Artículo sobre MSDN. Más sobre este método en MDN.


36
2017-07-09 07:01



Esto funciona todo el tiempo:

    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);
    
    document.write(today);


34
2017-11-03 18:03