Ich möchte Datum in Zeitstempel konvertieren, meine Eingabe ist 26-02-2012
. ich benutzte
new Date(myDate).getTime();
Es sagt NaN .. Kann jemand sagen, wie man das konvertiert?
var myDate="26-02-2012";
myDate=myDate.split("-");
var newDate=myDate[1]+","+myDate[0]+","+myDate[2];
alert(new Date(newDate).getTime()); //will alert 1330192800000
Update:
var myDate="26-02-2012";
myDate=myDate.split("-");
var newDate=myDate[1]+"/"+myDate[0]+"/"+myDate[2];
alert(new Date(newDate).getTime()); //will alert 1330210800000
DEMO (getestet in Chrome, FF, Opera, IE und Safari).
Versuchen Sie diese Funktion, sie verwendet die Methode Date.parse () und erfordert keine benutzerdefinierte Logik:
function toTimestamp(strDate){
var datum = Date.parse(strDate);
return datum/1000;
}
alert(toTimestamp('02/13/2009 23:31:30'));
var dtstr = "26-02-2012";
new Date(dtstr.split("-").reverse().join("-")).getTime();
dieser überarbeitete Code wird es tun
let toTimestamp = strDate => Date.parse(strDate)
das funktioniert auf allen modernen Browsern außer ie8-
function getTimeStamp() {
var now = new Date();
return ((now.getMonth() + 1) + '/' + (now.getDate()) + '/' + now.getFullYear() + " " + now.getHours() + ':'
+ ((now.getMinutes() < 10) ? ("0" + now.getMinutes()) : (now.getMinutes())) + ':' + ((now.getSeconds() < 10) ? ("0" + now
.getSeconds()) : (now.getSeconds())));
}
Sie müssen nur Ihre Datumsziffer umkehren und -
mit ,
ändern:
new Date(2012,01,26).getTime(); // 02 becomes 01 because getMonth() method returns the month (from 0 to 11)
In Ihrem Fall:
var myDate="26-02-2012";
myDate=myDate.split("-");
new Date(parseInt(myDate[2], 10), parseInt(myDate[1], 10) - 1 , parseInt(myDate[0]), 10).getTime();
P.S. UK Locale spielt hier keine Rolle.
Hier gibt es zwei Probleme: Zuerst können Sie getTime nur für eine Instanz des Datums aufrufen. Sie müssen das neue Datum in Klammern einschließen oder es der Variablen zuweisen.
Zweitens müssen Sie eine Zeichenfolge in einem geeigneten Format übergeben.
Arbeitsbeispiel:
(new Date("2012-02-26")).getTime();
Ihre Zeichenfolge ist nicht in einem Format, in dem das Date
-Objekt angegeben ist, um zu behandeln. Sie müssen es selbst analysieren, eine Datumsparsbibliothek wie MomentJS oder die ältere (und, soweit ich das beurteilen kann, derzeit nicht beibehalten) DateJS verwenden oder es in das richtige Format einmassieren ( B. 2012-02-29
), bevor Sie Date
zum Parsen auffordern.
Warum erhalten Sie NaN
: Wenn Sie new Date(...)
zur Verarbeitung einer ungültigen Zeichenfolge auffordern, wird ein Date
-Objekt zurückgegeben, das auf ein ungültiges Datum gesetzt ist (new Date("29-02-2012").toString()
gibt "Invalid date"
) zurück. Beim Aufruf von getTime()
für ein Datumsobjekt in diesem Status wird NaN
zurückgegeben.
/**
* Date to timestamp
* @param string template
* @param string date
* @return string
* @example datetotime("d-m-Y", "26-02-2012") return 1330207200000
*/
function datetotime(template, date){
date = date.split( template[1] );
template = template.split( template[1] );
date = date[ template.indexOf('m') ]
+ "/" + date[ template.indexOf('d') ]
+ "/" + date[ template.indexOf('Y') ];
return (new Date(date).getTime());
}
Um das (ISO-) Datum in Unix-Zeitstempel umzuwandeln, endete ich mit einem Zeitstempel, der um 3 Zeichen länger war als ich brauchte.
Ich musste es durch 1000 teilen: new Date('2012-02-26').getTime() / 1000
Für diejenigen, die einen lesbaren Zeitstempel im Format haben möchten, yyyymmddHHMMSS
> (new Date()).toISOString().replace(/[^\d]/g,'') // "20190220044724404"
> (new Date()).toISOString().replace(/[^\d]/g,'').slice(0, -3) // "20190220044724"
> (new Date()).toISOString().replace(/[^\d]/g,'').slice(0, -9) // "20190220"
Anwendungsbeispiel: eine Sicherungsdateierweiterung. /my/path/my.file.js.20190220
Antworten wurden von anderen Entwicklern zur Verfügung gestellt, aber auf meine eigene Weise können Sie dies im laufenden Betrieb tun, ohne eine benutzerdefinierte Funktion wie folgt zu erstellen:
var timestamp = Date.parse("26-02-2012".split('-').reverse().join('-'));
alert(timestamp); // returns 1330214400000