new - Cómo formatear una fecha de JavaScript
javascript date to string format dd mm yyyy (30)
¿Cómo puedo formatear un objeto de fecha JavaScript para imprimir como 10-Aug-2010
?
Atención: hay mejores respuestas a continuación. Esta respuesta fue escrita en 2010 y desde entonces han llegado nuevas y mejores soluciones. El OP debería aceptar otra respuesta.
function formatDate(date) {
var monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();
return day + '' '' + monthNames[monthIndex] + '' '' + year;
}
console.log(formatDate(new Date())); // show current date-time in console
Puede editar la matriz monthNames
para utilizar enero, febrero, marzo, etc.
Función de formato personalizado:
Para formatos fijos, una función simple hace el trabajo. El siguiente ejemplo genera el formato internacional YYYY-MM-DD:
function dateToYMD(date) {
var d = date.getDate();
var m = date.getMonth() + 1; //Month from 0 to 11
var y = date.getFullYear();
return '''' + y + ''-'' + (m<=9 ? ''0'' + m : m) + ''-'' + (d <= 9 ? ''0'' + d : d);
}
console.log(dateToYMD(new Date(2017,10,5))); // Nov 5
El formato OP se puede generar como:
function dateToYMD(date) {
var strArray=[''Jan'', ''Feb'', ''Mar'', ''Apr'', ''May'', ''Jun'', ''Jul'', ''Aug'', ''Sep'', ''Oct'', ''Nov'', ''Dec''];
var d = date.getDate();
var m = strArray[date.getMonth()];
var y = date.getFullYear();
return '''' + (d <= 9 ? ''0'' + d : d) + ''-'' + m + ''-'' + y;
}
console.log(dateToYMD(new Date(2017,10,5))); // Nov 5
Nota: sin embargo, generalmente no es una buena idea extender las bibliotecas estándar de JavaScript (por ejemplo, agregando esta función al prototipo de Fecha).
Una función más avanzada podría generar una salida configurable basada en un parámetro de formato.
Si escribir una función de formateo es demasiado larga, hay muchas bibliotecas alrededor de las cuales lo hace. Algunas otras respuestas ya las enumeran. Pero el aumento de dependencias también lo tiene contraparte.
Funciones de formato estándar de ECMAScript:
Desde las versiones más recientes de ECMAScript, la clase Date
tiene algunas funciones de formato específicas:
toDateString : depende de la implementación, muestra solo la fecha.
http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.todatestring
new Date().toDateString(); // e.g. "Fri Nov 11 2016"
toISOString : muestra la fecha y la hora ISO 8601.
http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.toisostring
new Date().toISOString(); // e.g. "2016-11-21T08:00:00.000Z"
toJSON : Stringifier para JSON.
http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tojson
new Date().toJSON(); // e.g. "2016-11-21T08:00:00.000Z"
toLocaleDateString : dependiente de la implementación, una fecha en formato de entorno local.
http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocaledatestring
new Date().toLocaleDateString(); // e.g. "21/11/2016"
toLocaleString : dependiente de la implementación, una fecha y hora en formato de entorno local.
http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocalestring
new Date().toLocaleString(); // e.g. "21/11/2016, 08:00:00 AM"
toLocaleTimeString : dependiente de la implementación, una hora en formato de entorno local.
http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tolocaletimestring
new Date().toLocaleTimeString(); // e.g. "08:00:00 AM"
toString : toString genérico para la fecha.
http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.tostring
new Date().toString(); // e.g. "Fri Nov 21 2016 08:00:00 GMT+0100 (W. Europe Standard Time)"
Nota: es posible generar una salida personalizada de esos formatos>
new Date().toISOString().slice(0,10); //return YYYY-MM-DD
Ejemplos de fragmentos:
console.log("1) "+ new Date().toDateString());
console.log("2) "+ new Date().toISOString());
console.log("3) "+ new Date().toJSON());
console.log("4) "+ new Date().toLocaleDateString());
console.log("5) "+ new Date().toLocaleString());
console.log("6) "+ new Date().toLocaleTimeString());
console.log("7) "+ new Date().toString());
console.log("8) "+ new Date().toISOString().slice(0,10));
Utilice toLocaleDateString();
El método toLocaleDateString()
devuelve una cadena con una representación sensible al idioma de la parte de la fecha de la fecha. Los argumentos locales y de opciones permiten que las aplicaciones especifiquen el idioma cuyas convenciones de formato deben usarse y permiten personalizar el comportamiento de la función.
Los valores que puede pasar en opciones para diferentes claves:
- día:
La representación del día.
Los valores posibles son "numérico", "2 dígitos". - día laborable:
La representación del día de la semana.
Los valores posibles son "estrecho", "corto", "largo". - año:
La representación del año.
Los valores posibles son "numérico", "2 dígitos". - mes:
La representación del mes.
Los valores posibles son "numérico", "2 dígitos", "estrecho", "corto", "largo". - hora:
La representación de la hora.
Los valores posibles son "numérico", "2 dígitos". - minuto: la representación del minuto.
Los valores posibles son "numérico", "2 dígitos". - segundo:
La representación del segundo.
Los valores posibles son "numérico", 2 dígitos.
Todas estas claves son opcionales. Puede cambiar el número de valores de opciones según sus requisitos, y esto también reflejará la presencia de cada fecha y hora.
Nota: Si solo desea configurar las opciones de contenido, pero aún usa la configuración regional actual, pasar el null
al primer parámetro causará un error. Utilice undefined
lugar.
Para diferentes idiomas:
- "en-US": para inglés
- "hi-in": para hindi
- "ja-JP": para japoneses
Puede utilizar más opciones de idioma.
Por ejemplo
var options = { weekday: ''long'', year: ''numeric'', month: ''long'', day: ''numeric'' };
var today = new Date();
console.log(today.toLocaleDateString("en-US")); // 9/17/2016
console.log(today.toLocaleDateString("en-US", options)); // Saturday, September 17, 2016
console.log(today.toLocaleDateString("hi-IN", options)); // शनिवार, 17 सितंबर 2016
También puede usar el método toLocaleString()
para el mismo propósito. La única diferencia es que esta función proporciona el momento en que no pasa ninguna opción.
// Example
9/17/2016, 1:21:34 PM
Referencias:
@ Sébastien - soporte alternativo para todos los navegadores
new Date(parseInt(496407600)*1000).toLocaleDateString(''de-DE'', {
year: ''numeric'',
month: ''2-digit'',
day: ''2-digit''
}).replace(//./g, ''/'');
Documentación: toLocaleDateString()
Aquí hay un código que escribí para manejar el formato de fecha para un proyecto en el que estoy trabajando. Imita la funcionalidad de formato de fecha de PHP para satisfacer mis necesidades. Siéntase libre de usarlo, solo está extendiendo el objeto Date () ya existente. Puede que esta no sea la solución más elegante, pero funciona para mis necesidades.
var d = new Date();
d_string = d.format("m/d/Y h:i:s");
/**************************************
* Date class extension
*
*/
// Provide month names
Date.prototype.getMonthName = function(){
var month_names = [
''January'',
''February'',
''March'',
''April'',
''May'',
''June'',
''July'',
''August'',
''September'',
''October'',
''November'',
''December''
];
return month_names[this.getMonth()];
}
// Provide month abbreviation
Date.prototype.getMonthAbbr = function(){
var month_abbrs = [
''Jan'',
''Feb'',
''Mar'',
''Apr'',
''May'',
''Jun'',
''Jul'',
''Aug'',
''Sep'',
''Oct'',
''Nov'',
''Dec''
];
return month_abbrs[this.getMonth()];
}
// Provide full day of week name
Date.prototype.getDayFull = function(){
var days_full = [
''Sunday'',
''Monday'',
''Tuesday'',
''Wednesday'',
''Thursday'',
''Friday'',
''Saturday''
];
return days_full[this.getDay()];
};
// Provide full day of week name
Date.prototype.getDayAbbr = function(){
var days_abbr = [
''Sun'',
''Mon'',
''Tue'',
''Wed'',
''Thur'',
''Fri'',
''Sat''
];
return days_abbr[this.getDay()];
};
// Provide the day of year 1-365
Date.prototype.getDayOfYear = function() {
var onejan = new Date(this.getFullYear(),0,1);
return Math.ceil((this - onejan) / 86400000);
};
// Provide the day suffix (st,nd,rd,th)
Date.prototype.getDaySuffix = function() {
var d = this.getDate();
var sfx = ["th","st","nd","rd"];
var val = d%100;
return (sfx[(val-20)%10] || sfx[val] || sfx[0]);
};
// Provide Week of Year
Date.prototype.getWeekOfYear = function() {
var onejan = new Date(this.getFullYear(),0,1);
return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
}
// Provide if it is a leap year or not
Date.prototype.isLeapYear = function(){
var yr = this.getFullYear();
if ((parseInt(yr)%4) == 0){
if (parseInt(yr)%100 == 0){
if (parseInt(yr)%400 != 0){
return false;
}
if (parseInt(yr)%400 == 0){
return true;
}
}
if (parseInt(yr)%100 != 0){
return true;
}
}
if ((parseInt(yr)%4) != 0){
return false;
}
};
// Provide Number of Days in a given month
Date.prototype.getMonthDayCount = function() {
var month_day_counts = [
31,
this.isLeapYear() ? 29 : 28,
31,
30,
31,
30,
31,
31,
30,
31,
30,
31
];
return month_day_counts[this.getMonth()];
}
// format provided date into this.format format
Date.prototype.format = function(dateFormat){
// break apart format string into array of characters
dateFormat = dateFormat.split("");
var date = this.getDate(),
month = this.getMonth(),
hours = this.getHours(),
minutes = this.getMinutes(),
seconds = this.getSeconds();
// get all date properties ( based on PHP date object functionality )
var date_props = {
d: date < 10 ? ''0''+date : date,
D: this.getDayAbbr(),
j: this.getDate(),
l: this.getDayFull(),
S: this.getDaySuffix(),
w: this.getDay(),
z: this.getDayOfYear(),
W: this.getWeekOfYear(),
F: this.getMonthName(),
m: month < 10 ? ''0''+(month+1) : month+1,
M: this.getMonthAbbr(),
n: month+1,
t: this.getMonthDayCount(),
L: this.isLeapYear() ? ''1'' : ''0'',
Y: this.getFullYear(),
y: this.getFullYear()+''''.substring(2,4),
a: hours > 12 ? ''pm'' : ''am'',
A: hours > 12 ? ''PM'' : ''AM'',
g: hours % 12 > 0 ? hours % 12 : 12,
G: hours > 0 ? hours : "12",
h: hours % 12 > 0 ? hours % 12 : 12,
H: hours,
i: minutes < 10 ? ''0'' + minutes : minutes,
s: seconds < 10 ? ''0'' + seconds : seconds
};
// loop through format array of characters and add matching data else add the format character (:,/, etc.)
var date_string = "";
for(var i=0;i<dateFormat.length;i++){
var f = dateFormat[i];
if(f.match(/[a-zA-Z]/g)){
date_string += date_props[f] ? date_props[f] : '''';
} else {
date_string += f;
}
}
return date_string;
};
/*
*
* END - Date class extension
*
************************************/
Así es como implementé para mis plugins npm
var monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
var Days = [
"Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"
];
var formatDate = function(dt,format){
format = format.replace(''ss'', pad(dt.getSeconds(),2));
format = format.replace(''s'', dt.getSeconds());
format = format.replace(''dd'', pad(dt.getDate(),2));
format = format.replace(''d'', dt.getDate());
format = format.replace(''mm'', pad(dt.getMinutes(),2));
format = format.replace(''m'', dt.getMinutes());
format = format.replace(''MMMM'', monthNames[dt.getMonth()]);
format = format.replace(''MMM'', monthNames[dt.getMonth()].substring(0,3));
format = format.replace(''MM'', pad(dt.getMonth()+1,2));
format = format.replace(/M(?![ao])/, dt.getMonth()+1);
format = format.replace(''DD'', Days[dt.getDay()]);
format = format.replace(/D(?!e)/, Days[dt.getDay()].substring(0,3));
format = format.replace(''yyyy'', dt.getFullYear());
format = format.replace(''YYYY'', dt.getFullYear());
format = format.replace(''yy'', (dt.getFullYear()+"").substring(2));
format = format.replace(''YY'', (dt.getFullYear()+"").substring(2));
format = format.replace(''HH'', pad(dt.getHours(),2));
format = format.replace(''H'', dt.getHours());
return format;
}
pad = function(n, width, z) {
z = z || ''0'';
n = n + '''';
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
}
Bueno, lo que quería era convertir la fecha de hoy en una cadena de fecha MySQL con MySQL como 2012-06-23, y usar esa cadena como parámetro en una de mis consultas. La solución simple que he encontrado es esta:
var today = new Date().toISOString().slice(0, 10);
Tenga en cuenta que la solución anterior no tiene en cuenta el desplazamiento de la zona horaria.
Puedes considerar usar esta función en su lugar:
function toJSONLocal (date) {
var local = new Date(date);
local.setMinutes(date.getMinutes() - date.getTimezoneOffset());
return local.toJSON().slice(0, 10);
}
Esto le dará la fecha correcta en caso de que esté ejecutando este código alrededor del inicio / final del día.
Creo que solo puede usar el método de fecha no estándar toLocaleFormat(formatString)
formatString: una cadena de formato en el mismo formato esperado por la función strftime()
en C.
var today = new Date();
today.toLocaleFormat(''%d-%b-%Y''); // 30-Dec-2011
Referencias:
Deberías echarle un vistazo a date.js Agrega muchos ayudantes convenientes para trabajar con fechas, por ejemplo, en su caso:
var date = Date.parse(''2010-08-10'');
console.log(date.toString(''dd-MMM-yyyy''));
Comenzando: http://www.datejs.com/2007/11/27/getting-started-with-datejs/
En los navegadores modernos (*) , puedes hacer esto:
var today = new Date().toLocaleDateString(''en-GB'', {
day : ''numeric'',
month : ''short'',
year : ''numeric''
}).split('' '').join(''-'');
Salida si se ejecuta hoy (24 de enero de 2016):
''24-Jan-2016''
(*) toLocaleDateString() , "navegadores modernos" significa Chrome 24+, Firefox 29+, Internet Explorer 11, Edge 12+, Opera 15+ y Safari todas las noches .
JavaScript simple es la mejor opción para los pequeños onetimers.
Por otro lado, si necesita más datos de fechas, MomentJS es una gran solución.
Por ejemplo:
moment().format(''YYYY-MM-DD HH:m:s''); // now() -> 2015-03-24 14:32:20
moment("20111031", "YYYYMMDD").fromNow(); // 3 years ago
moment("20120620", "YYYYMMDD").fromNow(); // 3 years ago
moment().startOf(''day'').fromNow(); // 11 hours ago
moment().endOf(''day'').fromNow(); // in 13 hours
Prueba esto:
function init(){
var d = new Date();
var day = d.getDate();
var x = d.toDateString().substr(4, 3);
var year = d.getFullYear();
document.querySelector("#mydate").innerHTML = day + ''-'' + x + ''-'' + year;
}
window.onload = init;
<div id="mydate"></div>
Puedo obtener el formato solicitado en una línea sin usar bibliotecas ni métodos de fecha, solo regex:
var d = (new Date()).toString().replace(//S+/s(/S+)/s(/d+)/s(/d+)/s.*/,''$2-$1-$3'');
// date will be formatted as "14-Oct-2015" (pass any date object in place of ''new Date()'')
Actualización: como señaló @RobG, la salida de Date.prototype.toString () depende de la implementación. Por lo tanto, use con precaución y modifique si es necesario para sus implementaciones si utiliza esta solución. En mis pruebas, esto funciona de manera confiable en América del Norte, donde los principales navegadores (Chrome, Safari, Firefox e IE) devuelven el mismo formato de cadena.
Si está utilizando jQuery UI en su código, hay una función incorporada llamada formatDate()
. Lo estoy usando de esta manera para formatear la fecha de hoy:
var testdate = Date();
testdate = $.datepicker.formatDate( "d-M-yy",new Date(testdate));
alert(testdate);
Puede ver muchos otros ejemplos de fecha de formato en la documentación de la interfaz de usuario de jQuery .
Si necesita formatear rápidamente su fecha usando JavaScript plano, use getDate
, getMonth + 1
, getFullYear
, getHours
y getMinutes
:
var d = new Date();
var datestring = d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " +
d.getHours() + ":" + d.getMinutes();
// 16-5-2015 9:50
O, si lo necesitas para rellenar con ceros:
var datestring = ("0" + d.getDate()).slice(-2) + "-" + ("0"+(d.getMonth()+1)).slice(-2) + "-" +
d.getFullYear() + " " + ("0" + d.getHours()).slice(-2) + ":" + ("0" + d.getMinutes()).slice(-2);
// 16-05-2015 09:50
Si ya está utilizando la interfaz de usuario jQuery en su proyecto, puede hacerlo de esta manera:
var formatted = $.datepicker.formatDate("M d, yy", new Date("2014-07-08T09:02:21.377"));
// formatted will be ''Jul 8, 2014''
Algunas opciones de formato de fecha para elegir fecha están disponibles here .
Solución de JavaScript sin usar ninguna biblioteca externa:
var now = new Date()
months = [''Jan'',''Feb'',''Mar'',''Apr'',''May'',''Jun'',''Jul'',''Aug'',''Sep'',''Oct'',''Nov'',''Dec'']
var formattedDate = now.getDate()+"-"+months[now.getMonth()]+"-"+now.getFullYear()
alert(formattedDate)
Sugar.js tiene excelentes extensiones para el objeto Date, incluido un método Date.format .
Ejemplos de la documentación:
Date.create().format(''{Weekday} {Month} {dd}, {yyyy}'');
Date.create().format(''{12hr}:{mm}{tt}'')
Tenemos muchas soluciones para esto, pero creo que la mejor de ellas es Moment.js. Así que personalmente sugiero usar Moment.js para operaciones de fecha y hora.
console.log(moment().format(''DD-MMM-YYYY''));
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
Una forma útil y flexible para formatear los DateTimes en JavaScript es Intl.DateTimeFormat
:
var date = new Date();
var options = { year: ''numeric'', month: ''short'', day: ''2-digit''};
var _resultDate = new Intl.DateTimeFormat(''en-GB'', options).format(date);
// The _resultDate is: "12 Oct 2017"
// Replace all spaces with - and then log it.
console.log(_resultDate.replace(/ /g,''-''));
El resultado es: "12-Oct-2017"
Los formatos de fecha y hora se pueden personalizar utilizando el argumento de opciones.
El objeto Intl.DateTimeFormat
es un constructor para objetos que permiten el formato de fecha y hora sensibles al idioma.
Sintaxis
new Intl.DateTimeFormat([locales[, options]])
Intl.DateTimeFormat.call(this[, locales[, options]])
Parámetros
locales
Opcional. Una cadena con una etiqueta de idioma BCP 47, o una matriz de dichas cadenas. Para la forma general y la interpretación del argumento de los locales, vea la página Intl. Se permiten las siguientes claves de extensión Unicode:
nu
Numbering system. Possible values include: "arab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt".
ca
Calendar. Possible values include: "buddhist", "chinese", "coptic", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamicc", "iso8601", "japanese", "persian", "roc".
Opciones
Opcional. Un objeto con algunas o todas las siguientes propiedades:
localeMatcher
El algoritmo de coincidencia de locale a utilizar. Los valores posibles son "lookup"
y "best fit"
; el valor predeterminado es "best fit"
. Para obtener información sobre esta opción, consulte la página Intl.
zona horaria
La zona horaria a utilizar. El único valor que deben reconocer las implementaciones es "UTC"
; el valor predeterminado es la zona horaria predeterminada del tiempo de ejecución. Las implementaciones también pueden reconocer los nombres de zonas horarias de la base de datos de zonas horarias de la IANA, como "Asia/Shanghai"
, "Asia/Kolkata"
, "America/New_York"
.
hora12
Ya sea para usar el tiempo de 12 horas (a diferencia del tiempo de 24 horas). Los valores posibles son true
y false
; el valor predeterminado depende de la configuración regional.
formatMatcher
El algoritmo de coincidencia de formato a utilizar. Los valores posibles son "basic"
y "best fit"
; el valor predeterminado es "best fit"
. Consulte los párrafos siguientes para obtener información sobre el uso de esta propiedad.
Las siguientes propiedades describen los componentes de fecha y hora a usar en la salida con formato y sus representaciones deseadas. Se requieren implementaciones para soportar al menos los siguientes subconjuntos:
weekday, year, month, day, hour, minute, second
weekday, year, month, day
year, month, day
year, month
month, day
hour, minute, second
hour, minute
Las implementaciones pueden admitir otros subconjuntos y las solicitudes se negociarán contra todas las combinaciones de representación de subconjuntos disponibles para encontrar la mejor coincidencia. Hay dos algoritmos disponibles para esta negociación y se seleccionan por la propiedad formatMatcher: un algoritmo "basic"
completamente especificado y un algoritmo de "mejor ajuste" dependiente de la implementación.
día laborable
La representación del día de la semana. Los valores posibles son "narrow"
, "short"
, "long"
.
era
La representación de la época. Los valores posibles son "narrow"
, "short"
, "long"
.
año
La representación del año. Los valores posibles son "numeric"
, "2-digit"
.
mes
La representación del mes. Los valores posibles son "numeric"
, "2-digit"
, "narrow"
, "short"
, "long"
.
día
La representación del día. Los valores posibles son "numeric"
, "2-digit"
.
hora
La representación de la hora. Los valores posibles son "numeric"
, "2-digit"
.
minuto
La representación del minuto. Los valores posibles son "numeric"
, "2-digit"
.
segundo
La representación del segundo. Los valores posibles son "numeric"
, "2-digit"
.
timeZoneName
La representación del nombre de la zona horaria. Los valores posibles son "short"
, "long"
. El valor predeterminado para cada propiedad componente de fecha y hora no está definido, pero si todas las propiedades del componente no están definidas, se supone que el año, el mes y el día son "numeric"
.
Usa la librería date.format :
var dateFormat = require(''dateformat'');
var now = new Date();
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");
devoluciones:
Saturday, June 9th, 2007, 5:46:21 PM
Usando una plantilla de cadena ECMAScript Edition 6 (ES6 / ES2015):
let d = new Date();
let formatted = `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}`;
Si necesitas cambiar los delimitadores:
const delimiter = ''/'';
let formatted = [d.getFullYear(), d.getMonth() + 1, d.getDate()].join(delimiter);
OK , tenemos algo llamado Intl que es muy útil para formatear una fecha en JavaScript:
Su fecha como abajo:
var date = ''10/8/2010'';
Y cambias a la fecha usando una nueva fecha () como a continuación:
date = new Date(date);
Y ahora puede formatearlo de la forma que desee utilizando una lista de locales como a continuación:
date = new Intl.DateTimeFormat(''en-AU'').format(date); // Australian date format: "8/10/2010"
date = new Intl.DateTimeFormat(''en-US'').format(date); // USA date format: "10/8/2010"
date = new Intl.DateTimeFormat(''ar-EG'').format(date); // Arabic date format: "٨/١٠/٢٠١٠"
Si desea exactamente el formato que mencionó anteriormente, puede hacer:
date = new Date(Date.UTC(2010, 7, 10, 0, 0, 0));
var options = {year: "numeric", month: "short", day: "numeric"};
date = new Intl.DateTimeFormat("en-AU", options).format(date).replace(//s/g, ''-'');
Y el resultado será:
"10-Aug-2010"
Para obtener más detalles sobre la API de internacionalización de ECMAScript (Intl) , visite here .
Aquí hay un script que hace exactamente lo que quieres
https://github.com/UziTech/js-date-format
var d = new Date("2010-8-10");
document.write(d.format("DD-MMM-YYYY"));
Para cualquiera que busque una solución ES6 realmente simple para copiar y pegar.
const dateToString = d => `${d.getFullYear()}-${(''00'' + (d.getMonth() + 1)).slice(-2)}-${(''00'' + d.getDate()).slice(-2)}`
// how to use:
const myDate = new Date(Date.parse(''04 Dec 1995 00:12:00 GMT''))
console.log(dateToString(myDate)) // 1995-12-04
Si te apetece una función corta y fácil de leer, esta función se ajusta fácilmente a tu medida.
El parámetro timeStamp es de milisegundos a partir de 1970: es devuelto por new Date().getTime()
y muchos otros dispositivos ...
Ok cambié de idea Incluí una función extra para cero relleno. Maldiciones
function zeroPad(aNumber) {
return ("0"+aNumber).slice(-2);
}
function humanTime(timeStamp) {
var M = [''Jan'', ''Feb'', ''Mar'', ''Apr'', ''May'', ''Jun'', ''Jul'', ''Aug'', ''Sep'', ''Oct'', ''Nov'', ''Dec''];
var D = new Date(timeStamp); // 23 Aug 2016 16:45:59 <-- Desired format.
return D.getDate() + " " + M[D.getMonth()] + " " + D.getFullYear() + " " + D.getHours() + ":" + zeroPad(d.getMinutes()) + ":" + zeroPad(D.getSeconds());
}
new Date().toLocaleDateString()
// "3/21/2018"
Más documentación en toLocaleDateString()
Existe una nueva biblioteca, smarti.to.js , para el formato localizado de números de JavaScript, fechas y fechas JSON (Microsoft o ISO8601).
Ejemplo:
new Date(''2015-1-1'').to(''dd.MM.yy'') // Outputs 01.01.2015
"2015-01-01T10:11:12.123Z".to(''dd.MM.yy'') // Outputs 01.01.2015
También hay patrones cortos personalizados definidos en el archivo de localización (smarti.to. {Culture} .js). Ejemplo (smarti.to.et-EE.js):
new Date(''2015-1-1'').to(''d'') // Outputs 1.01.2015
Y una habilidad multiformato:
smarti.format(''{0:n2} + {1:n2} = {2:n2}'', 1, 2, 3) // Output: 1,00 + 2,00 = 3,00
var today = new Date();
var formattedToday = today.toLocaleDateString() + '' '' + today.toLocaleTimeString();