wake-up-neo.com

datum in Zeitstempel in Javascript konvertieren?

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?

117
selladurai
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).

146
The Alpha

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'));
36
Ketan Savaliya
var dtstr = "26-02-2012";
new Date(dtstr.split("-").reverse().join("-")).getTime();
22
Diode

dieser überarbeitete Code wird es tun

let toTimestamp = strDate => Date.parse(strDate)

das funktioniert auf allen modernen Browsern außer ie8-

9
Jalasem
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())));
}
5
deepakssn

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.

4
antonjs

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();
2
Alan Bogu

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.

2
T.J. Crowder
/**
 * 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());
}
2
Evgeniy

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

0
orszaczky

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

0
allenhwkim

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
0
Frederick Eze