详解php 检查是否匹配指定时间段的方法
因工作开发需要,需要判断一个时间是否在指定的时间段内,且需要支持判断周几及跨天的情况,因此写了以下这个方法,分享给大家学习使用。
代码如下:
<?php/** * 判断时间是否匹配指定时间段 * * Date: 2017-10-29 * Author: fdipzone * Version: 1.0 * * @param Array $config 指定日期时段设定 * @param Int $time 判断的日期时间,默认为当前日期时间 * @return Boolean */function check_time_match($config, $time=null){ $curtime = isset($time)? $time : time(); // 当前周几 $curw = date('w', $curtime); // 上一天周几 $prew = date('w', $curtime-86400); // 当前时分 $curhm = date('H:i', $curtime); // 循环指定日期时段,检查是否匹配 foreach($config as $k=>$v){ // 循环时段 foreach($v['range'] as $t){ list($range, $next_day) = explode(',', $t); // 获取时段的开始结束时间 list($starttime, $endtime) = explode('-', $range); // 当天 if($next_day==0){ // 检查周几是否匹配 if(in_array($curw, $v['week'])){ // 检查时间是否匹配 if($curhm>=$starttime && $curhm<=$endtime){ return true; } } // 跨天 }else{ // 检查当天周几是否匹配 if(in_array($curw, $v['week'])){ // 检查当天时间是否匹配,开始时间-当天零点 if($curhm>=$starttime){ return true; } } // 检查上一天周几是否匹配 if(in_array($prew, $v['week'])){ // 检查上一天时间是否匹配,当天零点-结束时间 if($curhm<=$endtime){ return true; } } } } } return false; }?>
demo:
<?php// 指定日期时段设定$config = array( array( 'week' => array(1,2,3,4,5), // 周一至周五 'range' => array('08:00-12:00,0', '14:00-18:00,0', '20:00-22:00,0') ), array( 'week' => array(0,6), // 周六周日 'range' => array('08:00-18:00,0', '20:00-02:00,1'), // 0:不跨天,1:跨天 ) );// 检查时间是否匹配$check_time = array( null, // 当前日期时间,2017-10-29 11:40 周日 '2017-10-23 11:00', // 周一 '2017-10-24 12:01', // 周二 '2017-10-25 19:59', // 周三 '2017-10-26 21:59', // 周四 '2017-10-27 22:00', // 周五 '2017-10-28 12:01', // 周六 '2017-10-28 18:01', // 周六 '2017-10-29 01:59', // 周日 '2017-10-30 01:59', // 周一 '2017-10-30 02:01', // 周一 '2017-10-31 01:59', // 周二);foreach($check_time as $time){ var_dump(check_time_match($config, strtotime($time))); }?>
输出:
boolean trueboolean trueboolean falseboolean falseboolean trueboolean trueboolean trueboolean falseboolean trueboolean trueboolean falseboolean false
本篇文章讲解了php 检查是否匹配指定时间段的方法,更多相关内容请关注php中文网。
相关推荐:
mysql5.7导出数据提示--secure-file-priv选项问题的解决方法
如何通过php 实现debug_backtrace方法跟踪代码调用
Atas ialah kandungan terperinci 详解php 检查是否匹配指定时间段的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

CakePHP ialah rangka kerja MVC sumber terbuka. Ia menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP mempunyai beberapa perpustakaan untuk mengurangkan beban tugas yang paling biasa.

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data
