Pilihan kecil: Fungsi Anda mendapat masalah menjelang tengah malam jika waktu tersebut mencakup perubahan DST. Secara eksplisit pergi siang membantu di sana.
Deduplicator
1
Salah . 3 hal tentang DST: 1 itu tergantung pada waktu server, jika server memiliki zona waktu yang benar itu tidak akan mempengaruhi fungsi saya. 2 tidak seluruh dunia dipengaruhi oleh DST, ada tempat yang tidak menggunakannya. 3 sebagian besar tempat digunakan untuk mengubah waktu selama jam-jam pertama hari itu (seperti jam 2 atau 3 pagi) sehingga tidak akan memengaruhi perubahan hari.
Fabio
1
1. Agar fungsi tersebut mengetahui dan memperhatikan bahwa satu hari bisa lebih dari 24 jam? 2. Bahkan jam rusak benar dua kali sehari. 3. Jam tepatnya yang dicuri / digandakan tidak terlalu penting untuk perhitungan.
Deduplicator
1
tidak masuk akal 1 hari tidak lain dari 24 sampai DST merubah waktu dan server merubah waktu sesuai 2 tentunya itu tapi bukan itu point 3 ini yang sangat penting malah, ide anda bisa benar jika waktu berubah tengah malam, tidak pada jam-jam lain
Tidak dijamin dengan penghematan siang hari ... orang benar-benar harus menggunakan objek DateTime hari ini
Mark Baker
Akan bekerja dengan baik jika beroperasi pada waktu UTC. date_default_timezone_set ('UTC');
Patrick
7
Langkah 1
Kita perlu mengatur format data di function date (): Function date () mengembalikan string yang diformat sesuai dengan string format yang diberikan menggunakan stempel waktu integer yang diberikan atau waktu saat ini jika stempel waktu ifno diberikan. Dengan kata lain, stempel waktu adalah opsional dan default ke nilai time ().
<?phpecho date("F j, Y");
?>
hasil: 30 Maret 2010
Langkah 2
Untuk tanggal "kemarin", gunakan fungsi php mktime (): Fungsi mktime () mengembalikan stempel waktu Unix yang sesuai dengan argumen yang diberikan. Stempel waktu ini adalah bilangan bulat panjang yang berisi jumlah detik antara Unix Epoch (1 Januari 1970 00:00:00 GMT) dan waktu yang ditentukan. Argumen dapat ditinggalkan secara berurutan dari kanan ke kiri; argumen apa pun yang dihilangkan akan disetel ke nilai saat ini sesuai dengan tanggal dan waktu lokal.
$tz = new DateTimeZone('Your Time Zone');
$date = new DateTime($today,$tz);
$interval = new DateInterval('P1D');
$date->sub($interval);
echo $date->format('d.m.y');
?>
Jawaban:
ini dia
date('d.m.Y',strtotime("-1 days"));
ini juga akan berfungsi jika bulan berubah
sumber
Anda dapat melakukannya dengan
date("F j, Y", time() - 60 * 60 * 24);
atau oleh
date("F j, Y", strtotime("yesterday"));
sumber
Langkah 1
Kita perlu mengatur format data di function date (): Function date () mengembalikan string yang diformat sesuai dengan string format yang diberikan menggunakan stempel waktu integer yang diberikan atau waktu saat ini jika stempel waktu ifno diberikan. Dengan kata lain, stempel waktu adalah opsional dan default ke nilai time ().
<?php echo date("F j, Y"); ?>
hasil: 30 Maret 2010
Langkah 2
Untuk tanggal "kemarin", gunakan fungsi php mktime (): Fungsi mktime () mengembalikan stempel waktu Unix yang sesuai dengan argumen yang diberikan. Stempel waktu ini adalah bilangan bulat panjang yang berisi jumlah detik antara Unix Epoch (1 Januari 1970 00:00:00 GMT) dan waktu yang ditentukan. Argumen dapat ditinggalkan secara berurutan dari kanan ke kiri; argumen apa pun yang dihilangkan akan disetel ke nilai saat ini sesuai dengan tanggal dan waktu lokal.
<?php echo mktime(0, 0, 0, date("m"), date("d")-1, date("Y")); ?>
hasil: 1269820800
LANGKAH 3
Sekarang gabungkan semua dan lihat ini:
<?php $yesterday = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")-1,date("Y"))); echo $yesterday; ?>
hasil: 29 Maret 2010
Beroperasi dengan cara yang sama, dimungkinkan untuk menerima waktu jam kembali.
<?php $yesterday = date("H:i:s",mktime(date("H"), 0, 0, date("m"),date("d"), date("Y"))); echo $yesterday; ?>
hasil: 20:00:00
atau 7 hari yang lalu:
<?php $week = date("Y-m-d",mktime(0, 0, 0, date("m"), date("d")-7,date("Y"))); echo $week; ?>
hasil: 2010-03-23
sumber
coba ini
$tz = new DateTimeZone('Your Time Zone'); $date = new DateTime($today,$tz); $interval = new DateInterval('P1D'); $date->sub($interval); echo $date->format('d.m.y'); ?>
sumber
Tanggal Kemarin dalam PHP:
echo date("Y-m-d", strtotime("yesterday"));
sumber
Jika Anda menentukan zona waktu di aplikasi PHP Anda (sebagaimana mestinya), Anda dapat melakukannya dengan cara ini:
date_default_timezone_set('Europe/Paris');
Maka sesederhana itu:
$yesterday = new DateTime('yesterday'); // will use our default timezone, Paris echo $yesterday->format('Y-m-d'); // or whatever format you want
(Anda mungkin ingin menentukan konstanta atau variabel lingkungan untuk menyimpan zona waktu default Anda.)
sumber
coba ini
<?php $yesterday = date(“d.m.Y”, time()-86400); echo $yesterday;
sumber
Metode OOP lain untuk DateTime dengan mengatur jam yang tepat:
$yesterday = new DateTime("yesterday 09:00:59", new DateTimeZone('Europe/London')); echo $yesterday->format('Y-m-d H:i:s') . "\n";
sumber
Anda juga dapat melakukan ini menggunakan perpustakaan Karbon :
Carbon::yesterday()->format('d.m.Y'); // '26.03.2019'
Dalam format lain:
Carbon::yesterday()->toDateString(); // '2019-03-26' Carbon::yesterday()->toDateTimeString(); // '2019-03-26 00:00:00' Carbon::yesterday()->toFormattedDateString(); // 'Mar 26, 2019' Carbon::yesterday()->toDayDateTimeString(); // 'Tue, Mar 26, 2019 12:00 AM'
sumber