Bagaimana cara menghitung perbedaan menit antara dua kali tanggal dalam PHP?
270
Kurangi yang paling masa lalu dari yang paling masa depan dan bagi dengan 60.
Waktu dilakukan dalam format Unix sehingga hanya sejumlah besar yang menunjukkan jumlah detik January 1, 1970, 00:00:00 GMT
Jawaban di atas adalah untuk versi PHP yang lebih lama. Gunakan kelas DateTime untuk melakukan perhitungan tanggal sekarang karena PHP 5.3 adalah normanya. Misalnya.
$ since_start adalah objek DateInterval . Perhatikan bahwa properti days tersedia (karena kami menggunakan metode diff dari kelas DateTime untuk menghasilkan objek DateInterval).
Kode di atas akan menampilkan:
1837 hari total
5 tahun
0 bulan
10 hari
6 jam
14 menit
2 detik
Untuk mendapatkan jumlah total menit:
Ini akan menampilkan:
2645654 menit
Yang merupakan jumlah menit aktual yang telah berlalu antara kedua tanggal. Kelas DateTime akan mengambil daylight saving (tergantung pada zona waktu) ke akun di mana "cara lama" tidak akan. Baca manual tentang Tanggal dan Waktu http://www.php.net/manual/en/book.datetime.php
sumber
inSeconds()
atau sesuatu yang serupa, sekarang pengulangan kode di mana-mana saya perlu menghitung perbedaan dalam hitungan detik.$dateFrom = new DateTime('2007-09-01 04:10:58'); $dateTo = new DateTime('2012-09-11 10:25:00'); echo ($dateTo->getTimestamp()-$dateFrom->getTimestamp())/60 ;
strtotime
jawaban di atasnya? Ini tampak seperti kasus OOP ketika Prosedural paling tidak sebagai solusi yang valid (dan jauh lebih ringkas).Inilah jawabannya:
sumber
/ 60,2
artinya: bagi dengan enam puluh, bulatkan ke dua tempat desimal terdekat.strtotime
mungkin sudah usang tetapi tidak dapat diandalkan jika Anda menggunakannya dengan benar. Masuk akal bahwa Anda harus bekerja dengan format tanggal yang konsisten untuk dapat membaca (atau mengurai) tanggal dengan benar. LihatISO 8601
dan jangan salahkan alat: =)sumber
sleep
menghitung selisih tanggal?Ini bekerja pada program saya, saya menggunakan
date_diff
, Anda dapat memeriksadate_diff
manual di sini .Anda mendapatkan hasil apa yang Anda inginkan.
sumber
cara lain dengan zona waktu.
sumber
$days = $interval->format('%d');
dan perbedaannya adalah($days * 1440 + $hours * 60 + $minutes)
. Selama berbulan-bulan, tahun => logika yang samaSaya menulis fungsi ini untuk satu situs blog saya (perbedaan antara tanggal yang lalu dan tanggal server). Ini akan memberi Anda output seperti ini
"49 detik yang lalu", "20 menit yang lalu", "21 jam yang lalu" dan seterusnya
Saya telah menggunakan fungsi yang akan memberi saya perbedaan antara tanggal yang dilewati dan tanggal server.
Simpan sebagai file misalkan "date.php". Panggil fungsi dari halaman lain seperti ini
Tentu saja Anda dapat memodifikasi fungsi untuk memberikan dua nilai.
sumber
Saya pikir ini akan membantu Anda
sumber
$minutes = floor(($seconds/60)%60);
sumber
Versi yang lebih universal yang mengembalikan hasil dalam hitungan hari, jam, menit atau detik termasuk pecahan / desimal:
sumber
Ini adalah bagaimana saya menampilkan "xx times ago" di php> 5.2 .. di sini ada info lebih lanjut tentang objek DateTime
sumber
Keluaran:
sumber
Kurangi waktu dan bagi dengan 60.
Berikut adalah contoh yang menghitung waktu yang berlalu dari
2019/02/01 10:23:45
dalam menit:sumber
Solusi saya untuk menemukan perbedaan antara dua tanggal ada di sini. Dengan fungsi ini Anda dapat menemukan perbedaan seperti detik, menit, jam, hari, tahun dan bulan.
Anda dapat mengembangkan fungsi ini. Saya menguji dan bekerja untuk saya. Output objek DateInterval ada di sini:
Penggunaan fungsi:
$ date = tanggal yang lalu, $ diff = type mis: "menit", "hari", "detik"
Semoga berhasil.
sumber
Ini akan membantu....
sumber
Saya menemukan banyak solusi tetapi saya tidak pernah mendapatkan solusi yang benar. Tetapi saya telah membuat beberapa kode untuk menemukan menit, silakan periksa.
Ini memberikan output dalam jam dan menit misalnya 01 jam 02 menit seperti 01:02
sumber