496 Stimmen

Wie zeigt man JavaScript datetime in 12 Stunden AM/PM-Format?

Wie zeigt man ein JavaScript datetime-Objekt im 12-Stunden-Format (AM/PM) an?

12voto

Geo Punkte 12194

Kurzer RegExp für en-US:

var d = new Date();
d = d.toLocaleTimeString().replace(/:\d+ /, ' '); // current time, e.g. "1:54 PM"

11voto

Hier finden Sie die Lösung

var d = new Date();
var amOrPm = (d.getHours() < 12) ? "AM" : "PM";
var hour = (d.getHours() < 12) ? d.getHours() : d.getHours() - 12;
return   d.getDate() + ' / ' + d.getMonth() + ' / ' + d.getFullYear() + ' ' + hour + ':' + d.getMinutes() + ' ' + amOrPm;

8voto

Irshad Babar Punkte 1213

Es wird das folgende Format zurückgegeben

09:56 AM

Anhängen der Null am Anfang auch für die Stunden, wenn sie kleiner als 10 sind

Hier ist es mit ES6-Syntax

const getTimeAMPMFormat = (date) => {
  let hours = date.getHours();
  let minutes = date.getMinutes();
  const ampm = hours >= 12 ? 'PM' : 'AM';
  hours = hours % 12;
  hours = hours ? hours : 12; // the hour '0' should be '12'
  hours = hours < 10 ? '0' + hours : hours;
  // appending zero in the start if hours less than 10
  minutes = minutes < 10 ? '0' + minutes : minutes;
  return hours + ':' + minutes + ' ' + ampm;
};
console.log(getTimeAMPMFormat(new Date)); // 09:59 AM

5voto

vamsikrishnamannem Punkte 4737

Ich fand, es ist aquí es funktioniert gut.

var date_format = '12'; /* FORMAT CAN BE 12 hour (12) OR 24 hour (24)*/

var d       = new Date();
var hour    = d.getHours();  /* Returns the hour (from 0-23) */
var minutes     = d.getMinutes();  /* Returns the minutes (from 0-59) */
var result  = hour;
var ext     = '';

if(date_format == '12'){
    if(hour > 12){
        ext = 'PM';
        hour = (hour - 12);
        result = hour;

        if(hour < 10){
            result = "0" + hour;
        }else if(hour == 12){
            hour = "00";
            ext = 'AM';
        }
    }
    else if(hour < 12){
        result = ((hour < 10) ? "0" + hour : hour);
        ext = 'AM';
    }else if(hour == 12){
        ext = 'PM';
    }
}

if(minutes < 10){
    minutes = "0" + minutes; 
}

result = result + ":" + minutes + ' ' + ext; 

console.log(result);

und plunker Beispiel aquí

5voto

carloswm85 Punkte 671

Ich hoffe, dass diese Antwort ein wenig besser lesbar ist als die anderen Antworten (insbesondere für Neueinsteiger).

Hier ist die Lösung, die ich in einigen meiner Websites implementiert habe, um den Zeitpunkt der letzten Änderung des Website-Codes mitzuteilen. Sie implementiert die AM/PM-Zeit durch die options Parameter von date.toLocaleDateString ( siehe zugehörige Mozilla-Dokumentation).

// Last time page code was updated/changed
const options = {
    year: "numeric",
    month: "long",
    weekday: "long",
    day: "numeric",
    hour: "numeric",
    minute: "numeric",
    second: "numeric",
    hour12: true // This is the line of code we care about here
    /*
        false: displays 24hs format for time
        true: displays 12, AM and PM format
    */
};

let last = document.lastModified;
let date = new Date(last);
let local = date.toLocaleDateString("en-US", options);
let fullDate = `${local}`;
document.getElementById("updated").textContent = fullDate;

Die Ausgabe erfolgt in dem Format:

Saturday, May 28, 2022, 8:38:50 PM

Diese Ausgabe wird dann in folgendem HTML-Code angezeigt:

<p>Last update: <span id="updated">_update_date_goes_here</span></p>

HINWEIS: In diesem Anwendungsfall, document.lastModified hat einige merkwürdige Verhaltensweisen, je nachdem, ob es lokal oder auf einem externen Server ausgeführt wird ( siehe diese Stack Overflow-Frage). Obwohl es korrekt funktioniert, wenn ich es in meiner GitHub-Seite ausführe (Sie sollten es in Aktion auf der Website unter Fußzeile ).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X