W PHP możesz łatwo przekonwertować angielski tekstowy opis daty i godziny na właściwą datę za pomocą strtotime()
.
Czy jest coś podobnego w Javascript?
Odpowiedzi:
Znalazłem ten artykuł i wypróbowałem samouczek. Zasadniczo możesz użyć konstruktora daty do przeanalizowania daty, a następnie napisać, aby uzyskać sekundy z getTime()
metody
var d=new Date("October 13, 1975 11:13:00");
document.write(d.getTime() + " milliseconds since 1970/01/01");
czy to działa?
strtotime()
obsługuje wiele innych formatów.
Tak to jest. I jest obsługiwany we wszystkich głównych przeglądarkach:
var ts = Date.parse("date string");
Jedyną różnicą jest to, że ta funkcja zwraca milisekundy zamiast sekund, więc musisz podzielić wynik przez 1000.
Sprawdź, jakie prawidłowe formaty mogą analizować JavaScript.
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");
Sprawdź tę realizację strtotime (PHP) w JavaScript!
Odkryłem, że działa identycznie jak PHP we wszystkim, co do niego wrzuciłem.
Aktualizacja: ta funkcja w wersji 1.0.2 nie może obsłużyć tego przypadku:
'2007:07:20 20:52:45'
(Uwaga:
separator roku i miesiąca)
Jest to teraz dostępne jako npm
moduł ! Po prostu, npm install locutus
a potem w twoim źródle:
var strtotime = require('locutus/php/datetime/strtotime');
Zazdroszczę strtotime () w php, ale swoje robię w javascript za pomocą momentu. Nie tak słodki jak ten z php, ale też robi to zgrabnie.
// first day of the month
var firstDayThisMonth = moment(firstDayThisMonth).startOf('month').toDate();
Idź tam iz powrotem, używając subtract()
i add()
z endOf()
i startOf()
:
// last day of previous month
var yesterMonthLastDay = moment(yesterMonthLastDay).subtract(1,'months').endOf('month').toDate();
Obsługa przeglądarki w zakresie analizowania ciągów jest niespójna . Ponieważ nie ma specyfikacji, które formaty powinny być obsługiwane, to, co działa w niektórych przeglądarkach, nie będzie działać w innych przeglądarkach.
Wypróbuj Moment.js - zapewnia funkcjonalność dla różnych przeglądarek do analizowania dat :
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
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>
Date()
- baaaardzo… tak samo jak new Date(strdate)
naprawdę…
Może możesz wykorzystać przykładową funkcję, taką jak:
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;
`