Bagaimana saya bisa mendapatkan stempel waktu UTC / GMT +/- menggunakan fungsi tanggal () PHP? Misalnya jika saya coba
date("Y-m-d H:i:s", time());
Saya akan mendapatkan cap waktu Unix; tetapi saya perlu mendapatkan stempel waktu UTC / GMT dengan string GMT / UTC +/- 0400 atau GMT / UTC +/- 1000 berdasarkan waktu lokal.
Jawaban:
Menggunakan
gmdate
akan selalu mengembalikan tanggal GMT. Sintaksnya sama dengan fordate
.sumber
gmdate("U") == time()
.) Kedengarannya seperti perilaku berpotensi buggy. Periksa kembali dan laporkan bug dengan proyek PHP.time()
mengembalikan "jumlah detik sejak Unix Epoch (1 Januari 1970 00:00:00 GMT)". CatatanGMT
. Fakta bahwa secara default sistem Anda mengubahnya menjadi zona waktu Anda untuk tampilan, adalah kenyamanan pengguna. Secara internal, selalu GMT.Sebuah gmdate () sederhana sudah cukup
sumber
Seperti yang dijawab sebelumnya di sini , karena PHP 5.2.0 Anda dapat menggunakan
DateTime
kelas dan menentukan zona waktu UTC dengan turunanDateTimeZone
.Dokumentasi DateTime __construct () menyarankan untuk meneruskan "sekarang" sebagai parameter pertama saat membuat instance DateTime dan menentukan zona waktu untuk mendapatkan waktu saat ini.
sumber
DateTime
? Menjalankannya sendiri, sepertinya berfungsi dengan baik tanpa mereka.namespace A
deklarasi di bagian atas, PHP akan menganggapDateTime
merujuk keA\DateTime
, yang salah. Menambahkan garis miring terbalik memperbaiki masalah tersebut. Ini adalah kebiasaan yang baik untuk dilakukan bahkan jika Anda belum menggunakan namespace, menurut saya.sumber
sumber
Mendapatkan tanggal UTC
Mendapatkan cap waktu UTC
Hasilnya tidak akan berbeda bahkan yang Anda miliki
date_default_timezone_set
pada kode Anda.sumber
Selain menelepon,
gmdate
Anda juga dapat meletakkan kode ini sebelum kode lainnya:Itu akan membuat sisa panggilan terkait tanggal / waktu Anda untuk menggunakan zona waktu GMT / UTC.
sumber
Anda dapat menggunakan fungsi gmmktime tanpa argumen untuk mendapatkan stempel waktu UTC saat ini:
gmmktime hanya akan berfungsi jika waktu server Anda menggunakan UTC. Misalnya, server saya disetel ke AS / Pasifik. fungsi yang tercantum di atas bergema kembali waktu Pasifik.
sumber
Format kustom Anda hilang
O
untuk memberi Anda offset zona waktu dari waktu lokal.Namun, untuk portabilitas / interoperabilitas yang dimaksimalkan, saya akan merekomendasikan menggunakan format tanggal ISO8601
c
Anda juga dapat menggunakan
gmdate
dan string offset zona waktu akan selalu seperti itu+00:00
sumber
Anda dapat menggunakan yang berikut untuk mendapatkan waktu UTC:
sumber
sumber
Di bawah ini temukan kode PHP untuk mendapatkan waktu UTC (Waktu Universal Terkoordinasi) saat ini
sumber