@wow proszę wskazać, dlaczego żaden z 4530 wyników nie odpowiedział na Twoje pytanie.
Gordon,
1
@Gordon Wciąż uczę się pisać od A do Z, ale okazało się, że uczą mnie, jak pisać od Z do A :)
wow
@wow Nie. Nauczą Cię pisać alfabetem ($ od, $ do). Prawie wszystkie z nich mówią, aby użyć date($format, strtotime($dateString))lub DateTimeodpowiednika obiektu. Różnią się jedynie danymi wejściowymi do tych funkcji. Wszystko, co musisz zrobić, to przejść do odpowiednich stron w podręczniku PHP i dowiedzieć się, jakie są dane wejściowe.
Gordon,
3
@Gordon Tak, masz rację. Po prostu znałem alfabet, a teraz pisuję czas pszczół. Mam nadzieję, że jestem w odpowiedniej szkole.
Chciałbym zauważyć, że użycie DATE_ISO8601daje ciąg daty, który jest nieco inny niż ISO8601 (dwukropek brakuje w TZ, ISO8601 oczekuje, że czasy będą wszystkie z OR bez dwukropka, a nie mieszanką) - date('c')daje ścisłą datę ważności ISO 8601 - Może to spowodować trudne do wyśledzenia błędy, jeśli kod oczekuje ścisłego formatu daty i godziny ISO 8601. Ref: en.wikipedia.org/wiki/ISO_8601
ckm
38
Po PHP 5 możesz użyć tego: echo date("c");formularz daty i godziny w formacie ISO 8601.
W odniesieniu do tego , oba te wyrażenia są ważne dla strefy czasowej, dla formatu podstawowego: ±[hh]:[mm], ±[hh][mm], or ±[hh].
Należy jednak pamiętać, że + 0X: 00 jest poprawne, a + 0X00 jest nieprawidłowe w przypadku dłuższego użytkowania. Więc lepiej jest użyć date("c"). Podobna dyskusja tutaj .
date($format, strtotime($dateString))
lubDateTime
odpowiednika obiektu. Różnią się jedynie danymi wejściowymi do tych funkcji. Wszystko, co musisz zrobić, to przejść do odpowiednich stron w podręczniku PHP i dowiedzieć się, jakie są dane wejściowe.Odpowiedzi:
Zorientowany obiektowo
To jest zalecany sposób.
Proceduralny
Dla starszych wersji PHP lub jeśli czujesz się bardziej komfortowo z kodem proceduralnym.
źródło
2010-12-30T23:21:46+1100
jak to zrobić2010-12-30T23:21:46+11:00
?preg_replace('/(?<=\d{2})(?=\d{2}$)/', ':', '2010-12-30T23:21:46+1100')
. Wyprowadza2010-12-30T23:21:46+11:00
.echo date('c', …
tworzy wynik z dwukropkiem.date('c', strtotime('2010-12-30 23:21:46'))
nice @Gordon :)DATE_ISO8601
daje ciąg daty, który jest nieco inny niż ISO8601 (dwukropek brakuje w TZ, ISO8601 oczekuje, że czasy będą wszystkie z OR bez dwukropka, a nie mieszanką) -date('c')
daje ścisłą datę ważności ISO 8601 - Może to spowodować trudne do wyśledzenia błędy, jeśli kod oczekuje ścisłego formatu daty i godziny ISO 8601. Ref: en.wikipedia.org/wiki/ISO_8601Po PHP 5 możesz użyć tego:
echo date("c");
formularz daty i godziny w formacie ISO 8601.http://ideone.com/nD7piL
Uwaga dotycząca komentarzy:
W odniesieniu do tego , oba te wyrażenia są ważne dla strefy czasowej, dla formatu podstawowego:
±[hh]:[mm], ±[hh][mm], or ±[hh]
.Należy jednak pamiętać, że + 0X: 00 jest poprawne, a + 0X00 jest nieprawidłowe w przypadku dłuższego użytkowania. Więc lepiej jest użyć
date("c")
. Podobna dyskusja tutaj .źródło
DATE_ISO8601
;+0X:00
vs+0X00
.'c'
iDATE_ISO8601
tworzą prawidłowe reprezentacje czasu ISO8601.DATE_ISO8601
nie tworzy prawidłowej reprezentacji ISO8601. DATE_ATOM robi jednakJak przekonwertować z ISO 8601 do unixtimestamp:
Jak przekonwertować z unixtimestamp do ISO 8601 (serwer strefy czasowej):
Jak przekonwertować z unixtimestamp do ISO 8601 (GMT):
Jak przekonwertować z unixtimestamp do ISO 8601 (niestandardowa strefa czasowa):
źródło
źródło
Jeśli spróbujesz ustawić wartość w datetime-local
źródło