2016-04-07 3 views
0

Ich habe eine Variable wie diese,Wie wird das ISO-Datums- und Zeitformat in "DD Mon YYYY hh: mm: ss" konvertiert?

var date = "2016-04-07T03:03:03Z"; 

Wie konvertiere ich es zu einem Zeitformat wie diese 6 Apr 2016, 8:03:03 PM in der lokalen Zeitzone JavaScript/jQuery verwenden?

+1

+1 einfach, weil Sie ein ISO-Datumsformat kennen, wenn Sie eins sehen. Waaay zu viele dieser Datum/Zeit Fragen verstehen Standardformate nicht. –

+0

LOL: D Danke für die +1 –

Antwort

1

Wie Sie es mit einer Zeitzone analysieren wollen und dann das Ausgabeformat, würde ich stark mit Moment.js vorschlagen, die eine gut verwendeten Bibliothek für Datum und Uhrzeit Manipulation ist:

Der Code würde wie folgt aussehen:

var date = "2016-04-07T03:03:03Z"; 
console.log(moment(date).format('D MMM YYYY, h:mm:ss A')); 
// "7 Apr 2016, 5:03:03 AM" 
+0

Die Moment.js-Bibliothek funktioniert wie Magie. Ich danke dir sehr :) –

1

Versuchen Sie folgendes:

var date = "2016-04-07T03:03:03Z"; 
var myDate = new Date(date); 

console.log(myDate); 

Do 7. April 2016 05.03.03 GMT + 0200 (W. Europe Daylight Time)

Der new Date(date) convert in der lokalen Zeitzone

Wenn Sie mehr Kontrolle über den Wert wünschen, können Sie auch das Datum formatieren, siehe this article für weitere Informationen

0

Ich habe etwas versucht, das Ihnen helfen könnte.

EDIT: mein Code-Snippet aktualisiert Militärzeit in Standardzeit zu forma

function formatDate (today) { 
 
    var newDateItems = new Array(); 
 
    var dateItems = String(today).split(" "); 
 
    dateItems.forEach(function(item, index){ 
 
    \t if (index > 0 && index < 5) { 
 
     if (index == 4){ 
 
     item = getStandardTime(item); 
 
     } 
 
     newDateItems.push(item); 
 
    } 
 
    }); 
 
    return newDateItems.join(" "); 
 
} 
 
//To format military time into standard time 
 
function getStandardTime(time) { 
 
    time = time.split(":"); 
 
    var hh = Number(time[0]); 
 
    var mm = Number(time[1]); 
 
    var ss = Number(time[2]); 
 
    var timeValue = ""; 
 
    if (hh > 12) timeValue += hh - 12; 
 
    else timeValue += hh; 
 
    
 
    if (mm < 10) timeValue += ":0" + mm; 
 
    else timeValue += ":" + mm 
 
    \t 
 
    if (ss < 10) timeValue += ":0" + ss; 
 
    else timeValue += ":" + ss 
 
    
 
    timeValue += (hh >= 12) ? " PM" : " AM"; 
 
    return timeValue 
 
    
 
} 
 
var dateToday = new Date(); 
 
document.write(formatDate(dateToday));

1

Lösung mit Date.prototype.toLocaleDateString() Funktion:

var date_str = "2016-04-07T03:03:03Z", 
    options = { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit'}, 
    formatted = (new Date(date_str)).toLocaleDateString('en-US', options), 
    date_parts = formatted.substring(0, formatted.indexOf(",")).split(" ").reverse().join(" "); 

var formatted_date = date_parts + formatted.substr(formatted.indexOf(",") + 1); 

console.log(formatted_date); 

Der Ausgang wie das aussehen wird Folgendes (nach Ihrem Standort):

7 Apr 2016, 6:03:03 AM 
Verwandte Themen