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?
javascript
date
VJS
źródło
źródło
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()
metodyvar d=new Date("October 13, 1975 11:13:00"); document.write(d.getTime() + " milliseconds since 1970/01/01");
czy to działa?
źródło
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.
źródło
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 2018:
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');
źródło
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()
iadd()
zendOf()
istartOf()
:// last day of previous month var yesterMonthLastDay = moment(yesterMonthLastDay).subtract(1,'months').endOf('month').toDate();
źródło
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
źródło
Istnieje kilka modułów, które zapewniają podobne zachowanie, ale nie do końca jak strtotime w PHP. Wśród kilku alternatyw znalazłem data-util daje najlepsze rezultaty.
źródło
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>
źródło
Date()
- baaaardzo… tak samo jaknew 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;
`
źródło