cari
Rumahpembangunan bahagian belakangtutorial php详解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(&#39;w&#39;, $curtime);    // 上一天周几
    $prew = date(&#39;w&#39;, $curtime-86400);    // 当前时分
    $curhm = date(&#39;H:i&#39;, $curtime);    // 循环指定日期时段,检查是否匹配
    foreach($config as $k=>$v){        // 循环时段
        foreach($v[&#39;range&#39;] as $t){            list($range, $next_day) = explode(&#39;,&#39;, $t);            // 获取时段的开始结束时间
            list($starttime, $endtime) = explode(&#39;-&#39;, $range);            // 当天
            if($next_day==0){                // 检查周几是否匹配
                if(in_array($curw, $v[&#39;week&#39;])){                    // 检查时间是否匹配
                    if($curhm>=$starttime && $curhm<=$endtime){                        return true;
                    }

                }            // 跨天
            }else{                // 检查当天周几是否匹配
                if(in_array($curw, $v[&#39;week&#39;])){                    // 检查当天时间是否匹配,开始时间-当天零点
                    if($curhm>=$starttime){                        return true;
                    }

                }                // 检查上一天周几是否匹配
                if(in_array($prew, $v[&#39;week&#39;])){                    // 检查上一天时间是否匹配,当天零点-结束时间
                    if($curhm<=$endtime){                        return true;
                    }

                }

            }

        }

    }    return false;

}?>

demo:

<?php// 指定日期时段设定$config = array(    array(        &#39;week&#39; => array(1,2,3,4,5), // 周一至周五
        &#39;range&#39; => array(&#39;08:00-12:00,0&#39;, &#39;14:00-18:00,0&#39;, &#39;20:00-22:00,0&#39;)
    ),    array(        &#39;week&#39; => array(0,6), // 周六周日
        &#39;range&#39; => array(&#39;08:00-18:00,0&#39;, &#39;20:00-02:00,1&#39;), // 0:不跨天,1:跨天
    )
);// 检查时间是否匹配$check_time = array(    null,               // 当前日期时间,2017-10-29 11:40 周日
    &#39;2017-10-23 11:00&#39;, // 周一
    &#39;2017-10-24 12:01&#39;, // 周二
    &#39;2017-10-25 19:59&#39;, // 周三
    &#39;2017-10-26 21:59&#39;, // 周四
    &#39;2017-10-27 22:00&#39;, // 周五
    &#39;2017-10-28 12:01&#39;, // 周六
    &#39;2017-10-28 18:01&#39;, // 周六
    &#39;2017-10-29 01:59&#39;, // 周日
    &#39;2017-10-30 01:59&#39;, // 周一
    &#39;2017-10-30 02:01&#39;, // 周一
    &#39;2017-10-31 01:59&#39;, // 周二);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中文网。

相关推荐:

如何JS获取访问设备信息的方法

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!

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
Apakah perbezaan antara masa tamat sesi mutlak dan terbiar?Apakah perbezaan antara masa tamat sesi mutlak dan terbiar?May 03, 2025 am 12:21 AM

Timeout sesi mutlak bermula pada masa penciptaan sesi, sementara waktu tamat sesi terbiar bermula pada masa operasi pengguna. Tamat masa sesi mutlak sesuai untuk senario di mana kawalan ketat kitaran hayat sesi diperlukan, seperti aplikasi kewangan; Timeout sesi terbiar sesuai untuk aplikasi yang mahu pengguna menyimpan sesi mereka aktif untuk masa yang lama, seperti media sosial.

Apakah langkah yang akan anda ambil jika sesi tidak berfungsi di pelayan anda?Apakah langkah yang akan anda ambil jika sesi tidak berfungsi di pelayan anda?May 03, 2025 am 12:19 AM

Kegagalan sesi pelayan boleh diselesaikan dengan mengikuti langkah -langkah: 1. Semak konfigurasi pelayan untuk memastikan sesi ditetapkan dengan betul. 2. Sahkan kuki klien, sahkan bahawa penyemak imbas menyokongnya dan hantar dengan betul. 3. Periksa perkhidmatan penyimpanan sesi, seperti Redis, untuk memastikan bahawa mereka beroperasi secara normal. 4. Semak kod aplikasi untuk memastikan logik sesi yang betul. Melalui langkah -langkah ini, masalah perbualan dapat didiagnosis dengan berkesan dan diperbaiki dan pengalaman pengguna dapat diperbaiki.

Apakah kepentingan fungsi session_start ()?Apakah kepentingan fungsi session_start ()?May 03, 2025 am 12:18 AM

session_start () iscrucialinphpformanaginguserSessions.1) itinitiatesanewsessionifnoneexists, 2) resumeSanexistingsession, dan3) setSasessionCookieforcontinuityAcrossrequests, enableingApplicationeUseUshenticationandPersonalConizedConizedContentContentContentContentContentContentContentContentContentContentContentC.

Apakah kepentingan menetapkan bendera httponly untuk cookies sesi?Apakah kepentingan menetapkan bendera httponly untuk cookies sesi?May 03, 2025 am 12:10 AM

Menetapkan bendera httponly adalah penting untuk cookies sesi kerana ia dapat mencegah serangan XSS dengan berkesan dan melindungi maklumat sesi pengguna. Khususnya, 1) bendera httponly menghalang JavaScript daripada mengakses kuki, 2) bendera boleh ditetapkan melalui setcookies dan make_response dalam php dan flask, 3) walaupun ia tidak dapat dicegah dari semua serangan, ia harus menjadi sebahagian daripada dasar keselamatan keseluruhan.

Masalah apa yang diselesaikan oleh sesi php dalam pembangunan web?Masalah apa yang diselesaikan oleh sesi php dalam pembangunan web?May 03, 2025 am 12:02 AM

PhpsSesionssolveThublemofMainTainStateAsmultipHttprequestsByStoringDataontheserverArverArsociatingWithauniquesession.1) merekaSTOREdataServer-sisi, biasanya

Data apa yang boleh disimpan dalam sesi PHP?Data apa yang boleh disimpan dalam sesi PHP?May 02, 2025 am 12:17 AM

Phpsessionscanstorestrings, nombor, tatasusunan, andobjects.1.strings: textdatalikeusernames.2.numbers: integersorfloatsforcounters.3.Arrays: ListsLikeshoppingCarts.4.Objects: complextructureSturesthatareserialized.

Bagaimana anda memulakan sesi PHP?Bagaimana anda memulakan sesi PHP?May 02, 2025 am 12:16 AM

Tostartaphpsession, usesession_start () atthescript'sbeginning.1) placeitbeforeanyoutputtosetthesessioncookie.2) usesessionsforusererdatalikeloginstatusorshoppingcarts.3)

Apakah regenerasi sesi, dan bagaimanakah ia meningkatkan keselamatan?Apakah regenerasi sesi, dan bagaimanakah ia meningkatkan keselamatan?May 02, 2025 am 12:15 AM

Penjanaan semula sesi merujuk kepada menjana ID sesi baru dan membatalkan ID lama apabila pengguna melakukan operasi sensitif dalam kes serangan tetap sesi. Langkah-langkah pelaksanaan termasuk: 1. Mengesan Operasi Sensitif, 2. Menjana ID Sesi Baru, 3. Memusnahkan ID Sesi Lama, 4. Kemas kini maklumat sesi pengguna.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)