@Gordon ya saya mendapat sekitar 4.530 hasil dan saya menemukan jawaban dari @alex
wow
@ wow tolong tunjukkan mengapa tidak ada dari 4530 hasil menjawab pertanyaan Anda.
Gordon
1
@Gordon Saya masih belajar bagaimana menulis dari A ke Z tetapi saya menemukan mereka mengajari saya bagaimana menulis dari Z ke A :)
wow
@ Wow Tidak. Mereka mengajari Anda cara menulis alfabet ($ dari, $ ke). Hampir semuanya memberitahu Anda untuk menggunakan date($format, strtotime($dateString))atau DateTimeobjek yang setara. Mereka hanya berbeda dalam masukan untuk fungsi-fungsi tersebut. Yang harus Anda lakukan adalah pergi ke halaman yang sesuai dalam Manual PHP dan mencari tahu apa inputnya.
Gordon
3
@ Gordon Ya, apakah Anda benar. Saya hanya tahu alfabet dan sekarang mengeja waktu lebah. Semoga saya di sekolah yang tepat.
Saya akan mencatat bahwa menggunakan DATE_ISO8601menghasilkan string tanggal yang sedikit berbeda dari ISO8601 (titik dua hilang di TZ, ISO8601 mengharapkan waktu menjadi semua dengan ATAU semua tanpa titik dua, bukan campuran) - date('c')menghasilkan tanggal valid ISO 8601 yang ketat - Hal ini dapat menyebabkan bug sulit dilacak jika kode mengharapkan format tanggal waktu ISO 8601 yang ketat. Ref: en.wikipedia.org/wiki/ISO_8601
ckm
38
Setelah PHP 5 Anda dapat menggunakan ini: echo date("c");format ISO 8601 datetime.
Sehubungan dengan ini , kedua ekspresi ini berlaku untuk zona waktu, untuk format dasar: ±[hh]:[mm], ±[hh][mm], or ±[hh].
Tetapi perhatikan bahwa, + 0X: 00 benar, dan + 0X00 salah untuk penggunaan yang diperpanjang. Jadi lebih baik digunakan date("c"). Diskusi serupa di sini .
Perhatikan sedikit perbedaan dengan DATE_ISO8601; +0X:00vs +0X00.
Ja͢ck
@ Ja͢ck apakah ini perlu down-voting? Sedikit perbedaan biasanya merupakan ide yang buruk.
rybo111
@ rybo111 Saya tidak melihat alasan untuk menolak jawaban ini; secara teknis, keduanya 'c'dan DATE_ISO8601menghasilkan representasi waktu ISO8601 yang valid.
Ja͢ck
Saya menambahkan catatan untuk menjawab.
trante
@ Ja͢ck DATE_ISO8601tidak menghasilkan representasi ISO8601 yang valid. DATE_ATOM melakukannya
Captain Obvious
4
Bagaimana mengkonversi dari ISO 8601 ke unixtimestamp:
date($format, strtotime($dateString))
atauDateTime
objek yang setara. Mereka hanya berbeda dalam masukan untuk fungsi-fungsi tersebut. Yang harus Anda lakukan adalah pergi ke halaman yang sesuai dalam Manual PHP dan mencari tahu apa inputnya.Jawaban:
Berorientasi pada objek
Ini cara yang direkomendasikan.
Prosedural
Untuk versi PHP yang lebih lama, atau jika Anda lebih nyaman dengan kode prosedural.
sumber
2010-12-30T23:21:46+1100
bagaimana membuatnya menjadi2010-12-30T23:21:46+11:00
?preg_replace('/(?<=\d{2})(?=\d{2}$)/', ':', '2010-12-30T23:21:46+1100')
. Ini menghasilkan2010-12-30T23:21:46+11:00
.echo date('c', …
menghasilkan keluaran dengan titik dua.date('c', strtotime('2010-12-30 23:21:46'))
bagus @Gordon :)DATE_ISO8601
menghasilkan string tanggal yang sedikit berbeda dari ISO8601 (titik dua hilang di TZ, ISO8601 mengharapkan waktu menjadi semua dengan ATAU semua tanpa titik dua, bukan campuran) -date('c')
menghasilkan tanggal valid ISO 8601 yang ketat - Hal ini dapat menyebabkan bug sulit dilacak jika kode mengharapkan format tanggal waktu ISO 8601 yang ketat. Ref: en.wikipedia.org/wiki/ISO_8601Setelah PHP 5 Anda dapat menggunakan ini:
echo date("c");
format ISO 8601 datetime.http://ideone.com/nD7piL
Catatan untuk komentar:
Sehubungan dengan ini , kedua ekspresi ini berlaku untuk zona waktu, untuk format dasar:
±[hh]:[mm], ±[hh][mm], or ±[hh]
.Tetapi perhatikan bahwa, + 0X: 00 benar, dan + 0X00 salah untuk penggunaan yang diperpanjang. Jadi lebih baik digunakan
date("c")
. Diskusi serupa di sini .sumber
DATE_ISO8601
;+0X:00
vs+0X00
.'c'
danDATE_ISO8601
menghasilkan representasi waktu ISO8601 yang valid.DATE_ISO8601
tidak menghasilkan representasi ISO8601 yang valid. DATE_ATOM melakukannyaBagaimana mengkonversi dari ISO 8601 ke unixtimestamp:
Cara mengonversi dari unixtimestamp ke ISO 8601 (server zona waktu):
Cara mengonversi dari unixtimestamp ke ISO 8601 (GMT):
Cara mengonversi dari unixtimestamp ke ISO 8601 (zona waktu khusus):
sumber
sumber
Jika Anda mencoba menetapkan nilai di datetime-local
sumber