Format date heure dans jQuery

var date = "2014-07-12 10:54:11"; 

Comment puis-je le montrer en format 12 juil 2014 à 10:51 am? Y a-t-il une fonction comme

 var newDate = formatNewDate(date); 

D'où je peux pouvoir obtenir l'heure de la date comme "12 Jul, 2014 à 10:51 am"?

 var d = new Date(); var month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; var date = d.getDate() + " " + month[d.getMonth()] + ", " + d.getFullYear(); var time = d.toLocaleTimeString().toLowerCase(); console.log(date + " at " + time); // 6 Jul, 2014 at 1:35:35 pm 

Ou vous pouvez avoir une fonction

 var my_date_format = function(d){ var month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; var date = d.getDate() + " " + month[d.getMonth()] + ", " + d.getFullYear(); var time = d.toLocaleTimeString().toLowerCase(); return (date + " at " + time); }(new Date()); 

Usage:

 console.log(my_date_format); 

2nd solution

 var my_date_format = function(input){ var d = new Date(Date.parse(input.replace(/-/g, "/"))); var month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; var date = d.getDate() + " " + month[d.getMonth()] + ", " + d.getFullYear(); var time = d.toLocaleTimeString().toLowerCase().replace(/([\d]+:[\d]+):[\d]+(\s\w+)/g, "$1$2"); return (date + " " + time); }; console.log(my_date_format("2014-07-12 11:28:13")); // output 6 Jul, 2014 11:28 am 

Vérifiez le jsBin

Extra note: Certains formats de date ne sont pas pris en charge dans tous les navigateurs!

 // "2014/07/12" -> yyyy/mm/dd [IE, FF, Chrome] // "07-12-2014" -> mm-dd-yyyy [IE, Chrome] // "July 12, 2014"; -> mmmm dd, yyyy [IE, FF] // "Jul 12, 2014"; -> mmm dd, yyyy [IE, FF] 
 function convertMysqldate(dateStr) { // Assuming input:2014-01-30 16:21:09 var t = dateStr.split(/[- :]/); var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; var year = t[0]; var month = monthNames[parseInt(t[1])]; var day = t[2]; var hourTmp = t[3]; var minute = t[4]; var seconds = t[5]; if (parseInt(hourTmp) > 12) { var hour = parseInt(parseInt(hourTmp) – 12) + ':' + minute + ':' + seconds + ' PM'; } else if (parseInt(hourTmp) === 12) { hour = parseInt(hourTmp) + ':' + minute + ':' + seconds + ' PM'; } else { hour = parseInt(hourTmp) + ':' + minute + ':' + seconds + ' AM'; } return (hour + '<br>' + day + ' ' + month + ' ' + year); } 

Copié d'ici

Format de la date MySql

J'ai créé une fonction de format de chaîne de date personnalisée, vous pouvez l'utiliser.

 var getDateString = function(date, format) { var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], getPaddedComp = function(comp) { return ((parseInt(comp) < 10) ? ('0' + comp) : comp) }, formattedDate = format, o = { "y+": date.getFullYear(), // year "M+": months[date.getMonth()], //month "d+": getPaddedComp(date.getDate()), //day "h+": getPaddedComp((date.getHours() > 12) ? date.getHours() % 12 : date.getHours()), //hour "H+": getPaddedComp(date.getHours()), //hour "m+": getPaddedComp(date.getMinutes()), //minute "s+": getPaddedComp(date.getSeconds()), //second "S+": getPaddedComp(date.getMilliseconds()), //millisecond, "b+": (date.getHours() >= 12) ? 'PM' : 'AM' }; for (var k in o) { if (new RegExp("(" + k + ")").test(format)) { formattedDate = formattedDate.replace(RegExp.$1, o[k]); } } return formattedDate; }; 

Et maintenant supposons que vous avez: –

  var date = "2014-07-12 10:54:11", objDate = Date.parse(date.replace(/-/g, "/"));; 

Ainsi, pour formater cette date, vous écrivez: –

 var formattedDate = getDateString(new Date(objDate ), "d M, y at h:mb") 

Y a-t-il une fonction comme

Non. Vous devez le formater vous-même. Vous avez deux options: analysez la chaîne pour créer un objet Date et générez une chaîne formatée, ou utilisez simplement les parties de la chaîne et reformatez-la. Dans les deux cas, on suppose que vous souhaitez le traiter comme date locale.

Ne soyez pas tenté de faire:

 var d = new Date('2014-07-12 10:54:11') 

Comme certains navigateurs le traitent comme UTC, certains comme locaux et d'autres ne l'analyseront pas du tout. Ce qui suit convertira la chaîne au format demandé sans créer un objet Date:

 function formatDate(s){ var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; var b = s.split(/\D+/); return b[2] + ' ' + months[+b[1]] + ', ' + b[0] + ' at ' + (b[3]%12 || 12) + ':' + b[4] + ' ' + (b[3] < 12? 'am':'pm'); } 

Toutefois, si vous devez créer un objet Date pour une autre raison, les éléments suivants peuvent aider:

 function formatDate(s){ function z(n){return (n<10?'0':'')+n} var months = ['Jan','Feb','Mar','Apr','May','Jun', 'Jul','Aug','Sep','Oct','Nov','Dec']; var b = s.split(/\D+/); var d = new Date(b[0],--b[1],b[2],b[3],b[5],b[5]); return d.getDate() + ' ' + months[d.getMonth()] + ', ' + d.getFullYear() + ' at ' + z(d.getHours()%12 || 12) + ':' + z(d.getMinutes()) + ' ' + (d.getHours() < 12? 'am':'pm'); }