var date = "Fri Jan 29 2012 06:12:00 GMT+0100";
Comment puis-je afficher ceci au format 2012-01-29 06:12? Dans PHP, fonction -> format. En Javascript est aussi le format, mais si j'essaye de l'utiliser, alors j'ai une erreur:
now.format n'est pas une fonction
var now = new Date();
console.log(now.format("isoDateTime"));
Je souhaite recevoir le format: 2012-01-29 06:12
Cette question est un doublon (voir: Comment obtenir la date actuelle dans jQuery? ).
En modifiant ma solution de l'autre question, j'ai eu:
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();
var output = d.getFullYear() + '-' +
((''+month).length<2 ? '0' : '') + month + '-' +
((''+day).length<2 ? '0' : '') + day + ' ' +
((''+hour).length<2 ? '0' :'') + hour + ':' +
((''+minute).length<2 ? '0' :'') + minute + ':' +
((''+second).length<2 ? '0' :'') + second;
Voir ce jsfiddle pour une preuve: http://jsfiddle.net/nCE9u/3/
Vous pouvez également l'enfermer dans une fonction (la démo est ici: http://jsfiddle.net/nCE9u/4/ ):
function getISODateTime(d){
// padding function
var s = function(a,b){return(1e15+a+"").slice(-b)};
// default date parameter
if (typeof d === 'undefined'){
d = new Date();
};
// return ISO datetime
return d.getFullYear() + '-' +
s(d.getMonth()+1,2) + '-' +
s(d.getDate(),2) + ' ' +
s(d.getHours(),2) + ':' +
s(d.getMinutes(),2) + ':' +
s(d.getSeconds(),2);
}
et l'utiliser comme ça:
getISODateTime(new Date());
ou:
getISODateTime(some_other_date);
EDIT: J'ai ajouté quelques améliorations à la fonction, comme proposé par Ates Goral (elle a également diminué sa lisibilité au profit des commentaires de code).
Utilisez une bibliothèque telle que Datejs ou peut-être ceci Taille de Tweet implementation:
https://Gist.github.com/1005948
var str = formatDate(
new Date(),
"{FullYear}-{Month:2}-{Date:2} {Hours:2}:{Minutes:2}");
Malheureusement, en Javascript, Date n’a pas de méthode format ().
Consultez http://fisforformat.sourceforge.net pour connaître certaines méthodes de formatage de Nice.
Vous pouvez utiliser quelque chose comme ceci (include date.js ):
Date.parse(yourDate).toISOString();
la date aura donc le format ISO 8601.
Je pense que cela pourrait vous aider: date.format.js
var now = new Date();
now.format("m/dd/yy");
// Returns, e.g., 6/09/07
// Can also be used as a standalone function
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");
// Saturday, June 9th, 2007, 5:46:21 PM
// You can use one of several named masks
now.format("isoDateTime");