Rumah >pembangunan bahagian belakang >tutorial php >Petua Pengaturcaraan PHP: Kira Hari dalam Minggu untuk Sebarang Tarikh

Petua Pengaturcaraan PHP: Kira Hari dalam Minggu untuk Sebarang Tarikh

WBOY
WBOYasal
2024-02-29 18:12:03976semak imbas

Petua Pengaturcaraan PHP: Kira Hari dalam Minggu untuk Sebarang Tarikh

Petua pengaturcaraan PHP: Kira hari dalam seminggu untuk sebarang tarikh

Dalam pengaturcaraan PHP, anda sering menghadapi situasi di mana anda perlu mengira hari dalam seminggu untuk tarikh tertentu. Walaupun PHP menyediakan fungsi tarikh dan masa, kadangkala kita perlu menulis kod kita sendiri untuk melaksanakan fungsi ini. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis fungsi untuk mengira hari dalam seminggu untuk sebarang tarikh, dan melampirkan contoh kod tertentu.

Pertama sekali, kita perlu memahami formula pengiraan asas: formula Zeiler. Formula Zeiler ialah algoritma untuk mengira hari dalam seminggu untuk sebarang tarikh Formula adalah seperti berikut:

[ h = (q + [13(m+1]/5) + K + [K/4] + [. J /4] - 2J) % 7 ]

Di mana, h ialah hari dalam seminggu (0 ialah Ahad, 1 ialah Isnin, dan seterusnya), q ialah tarikh (1 hingga 31), m ialah bulan ( 3 ialah Mac, 4 ialah April, dan seterusnya, tetapi Januari dan Februari dikira sebagai bulan ke-13 dan ke-14 tahun sebelumnya), K ialah digit tunggal tahun itu, dan J ialah digit sepuluh tahun itu.

Dengan formula ini sebagai asas, kita boleh menulis fungsi PHP untuk mengira hari dalam minggu untuk sebarang tarikh. Berikut ialah kod sampel:

function getWeekday($year, $month, $day) {
    if ($month < 3) {
        $year--;
        $month += 12;
    }
    
    $K = $year % 100;
    $J = floor($year / 100);
    
    $h = ($day + floor((13*($month+1))/5) + $K + floor($K/4) + floor($J/4) - 2*$J) % 7;
    
    return $h;
}

// 以2022年5月20日为例
$year = 2022;
$month = 5;
$day = 20;
$weekday = getWeekday($year, $month, $day);

$weekday_map = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];

echo "{$year}年{$month}月{$day}日是{$weekday_map[$weekday]}";

Dalam kod sampel di atas, kami mentakrifkan fungsi yang dipanggil getWeekday, yang menerima tiga parameter: tahun, bulan dan hari, dan kemudian mengira hari dalam seminggu mengikut formula Zeiler dan mengembalikan nombor yang sepadan. Akhir sekali, kami menggunakan tatasusunan dipetakan yang mengandungi hari dalam seminggu untuk menukar nombor itu kepada nama hari tertentu dalam minggu itu, dan mengeluarkan hasilnya.

Melalui fungsi ini, kami boleh mengira dengan mudah hari dalam seminggu untuk sebarang tarikh, menyediakan penyelesaian yang fleksibel kepada keperluan berkaitan tarikh dan masa dalam pengaturcaraan PHP. Saya harap artikel ini dapat membantu pembaca yang sedang mempelajari pengaturcaraan PHP.

Atas ialah kandungan terperinci Petua Pengaturcaraan PHP: Kira Hari dalam Minggu untuk Sebarang Tarikh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn