In PHP können Sie eine englische Text-Datums- / Uhrzeitbeschreibung einfach in ein korrektes Datum mit konvertieren strtotime()
.
Gibt es etwas Ähnliches in Javascript?
javascript
date
VJS
quelle
quelle
Antworten:
Ich habe diesen Artikel gefunden und das Tutorial ausprobiert. Grundsätzlich können Sie den Datumskonstruktor verwenden, um ein Datum zu analysieren, und dann schreiben, um die Sekunden aus der
getTime()
Methode abzurufenvar d=new Date("October 13, 1975 11:13:00"); document.write(d.getTime() + " milliseconds since 1970/01/01");
Funktioniert das?
quelle
strtotime()
unterstützt jedoch viele andere Formate.Ja ist es. Und es wird in allen gängigen Browsern unterstützt:
var ts = Date.parse("date string");
Der einzige Unterschied besteht darin, dass diese Funktion Millisekunden anstelle von Sekunden zurückgibt. Sie müssen das Ergebnis also durch 1000 teilen.
Überprüfen Sie, welche gültigen Formate JavaScript analysieren kann.
quelle
strtotime("now"); strtotime("10 September 2000"); strtotime("+1 day"); strtotime("+1 week"); strtotime("+1 week 2 days 4 hours 2 seconds"); strtotime("next Thursday"); strtotime("last Monday");
Schauen Sie sich diese Implementierung von PHPs strtotime () in JavaScript an!
Ich fand, dass es für alles, was ich darauf warf, identisch mit PHP funktioniert.
Update 2018:
Dies ist jetzt als
npm
Modul verfügbar ! Einfachnpm install locutus
und dann in Ihrer Quelle:var strtotime = require('locutus/php/datetime/strtotime');
quelle
Ich bin neidisch auf die strtotime () in PHP, aber ich mache meine in Javascript mit Moment. Nicht so süß wie das von PHP, aber macht den Trick auch ordentlich.
// first day of the month var firstDayThisMonth = moment(firstDayThisMonth).startOf('month').toDate();
Gehen Sie mit dem
subtract()
undadd()
mit demendOf()
und hin und herstartOf()
:// last day of previous month var yesterMonthLastDay = moment(yesterMonthLastDay).subtract(1,'months').endOf('month').toDate();
quelle
Die Browserunterstützung für das Parsen von Zeichenfolgen ist inkonsistent . Da es keine Spezifikation gibt, welche Formate unterstützt werden sollen, funktioniert das, was in einigen Browsern funktioniert, in anderen Browsern nicht.
Probieren Sie Moment.js aus - es bietet browserübergreifende Funktionen zum Parsen von Daten :
var timestamp = moment("2013-02-08 09:30:26.123"); console.log(timestamp.milliseconds()); // return timestamp in milliseconds console.log(timestamp.second()); // return timestamp in seconds
quelle
Es gibt nur wenige Module, die ein ähnliches Verhalten bieten, jedoch nicht genau wie die Strtotime von PHP. Unter den wenigen Alternativen fand ich, dass Date-Util die besten Ergebnisse liefert.
quelle
var strdate = new Date('Tue Feb 07 2017 12:51:48 GMT+0200 (Türkiye Standart Saati)'); var date = moment(strdate).format('DD.MM.YYYY'); $("#result").text(date); //07.02.2017
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"></script> <div id="result"></div>
quelle
Date()
- sooo… genau wienew Date(strdate)
wirklich…Vielleicht können Sie eine Beispielfunktion nutzen wie:
function strtotime(date, addTime){ let generatedTime=date.getTime(); if(addTime.seconds) generatedTime+=1000*addTime.seconds; //check for additional seconds if(addTime.minutes) generatedTime+=1000*60*addTime.minutes;//check for additional minutes if(addTime.hours) generatedTime+=1000*60*60*addTime.hours;//check for additional hours return new Date(generatedTime); } let futureDate = strtotime(new Date(), { hours: 1, //Adding one hour minutes: 45 //Adding fourty five minutes }); document.body.innerHTML = futureDate;
`
quelle