PHP 判断给定两个时间是否在同一周,月,年

  • 判断是否在同一周

    date_default_timezone_set(‘PRC‘);
    //判断是否在同一周,原理:求出其中一个时间戳所在周的周一凌晨时间戳和周日24.00时间戳,如果另一个时间戳在这个范围内,则说明在同一周,否则不在同一周
    function getSameWeek($pretime,$aftertime){
        $monday = strtotime(‘last Monday‘, $pretime); //离当前时间戳$pretime最近的上一个周一的时间戳,如果当前时间$pretime是周一,$monday存储的仍然是上周一
        //判断如果当前给定时间戳就是周一,那么就返回当前时间戳给$monday
        if(date(‘w‘, $pretime)){
            $monday = $pretime;
        }
        $sunday = $monday+24*3600*7; //周日时间戳
        if($aftertime >= $sunday){
            return false;
        }
    
        if( $aftertime <= $monday ){
            return false;
        }
        return true;
    }
    $testWeek_start=strtotime(‘2019-8-19‘);
    $testWeek_end=strtotime(‘2019-8-18‘);
    echo getSameWeek($testWeek_start, $testWeek_end) ? ‘在同一周‘ : ‘不在同一周‘, ‘<br>‘;
  • 判断是否在同一月(可以使用上面的思路来实现,但这里使用另一个思路)

    date_default_timezone_set(‘PRC‘);
    
    function isSameMonth($time1, $time2)
    {
        $m1 = date(‘Ym‘, $time1);
        $m2 = date(‘Ym‘, $time2);
        // 必须判断年份,不然2019-8和2020-8会被认为同一月
        if($m1 == $m2){
            return true;
        }
        return false;
    }
    
    $t1 = strtotime(‘2018-8-13‘);
    $t2 = strtotime(‘2019-8-18‘);
    echo isSameMonth($t1, $t2) ? ‘在同一月‘ : ‘不在同一月‘;
  • 判断年使用判断月的思路比较简单,只需把date里的‘’m‘’去掉, 代码省略

原文地址:https://www.cnblogs.com/bneglect/p/12036834.html

时间: 2024-10-06 09:04:12

PHP 判断给定两个时间是否在同一周,月,年的相关文章

Java计算两个时间的天数差与月数差 LocalDateTime

/**  * 计算两个时间点的天数差  * @param dt1 第一个时间点  * @param dt2 第二个时间点  * @return int,即要计算的天数差  */ public static int dateDiff(LocalDateTime dt1,LocalDateTime dt2){  //获取第一个时间点的时间戳对应的秒数  long t1 = dt1.toEpochSecond(ZoneOffset.ofHours(0));  //获取第一个时间点在是1970年1月1日

java 判断两个时间相差的天数!

package com.datedaycha;     import java.text.SimpleDateFormat;     import java.util.Calendar;     import java.util.Date;     import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;     /*      * java 判断两个时间相差的天数     1.实现目标     输入:两

Java中判断两个时间是否相隔一天

/**      * 判断两个时间是否相隔一天      */     public static boolean overOneDay(String date1,String date2){         Date startTime =stringToDate(date1);         Date endTime =stringToDate(date2);         long  between = endTime.getTime() - startTime.getTime();

如何判断两个时间是否是同一天

- (void)viewDidLoad { [super viewDidLoad]; NSString *d = @"2015-03-05 23:59:59"; NSDateFormatter *format = [[NSDateFormatter alloc] init]; [format setDateFormat:@"yyyy:MM:dd HH:mm:ss"]; NSDate *date = [format dateFromString:d]; NSLog(@

020给定两个二叉树T1,T2判断T1是否是T2的子树(keep it up)

给定两个二叉树T1,T2判断T1是否是T2的子树 首先在T2中查找T1的根节点,如果找不到, 则T1不是T2的子树,如果能找到,我们可以 遍历T1,检查T1的每个结点是否对应的存在T2 中. 代码: struct TreeNode { int data; TreeNode* leftChild; TreeNode* rightChild; }; bool isExited(const TreeNode* vRoot1, const TreeNode *vRoot2, TreeNode* vRes

java判断两个时间相差得天数

方法一:通过Calendar类得日期比较,在这需要考虑闰年和平年,也要考虑跨年份 /** * date2比date1多的天数 * @param date1 * @param date2 * @return */ public static int differentDays(Date date1,Date date2) { Calendar cal1 = Calendar.getInstance(); cal1.setTime(date1); Calendar cal2 = Calendar.g

PHP中比较两个时间的大小与日期的差值

在这里我们全用到时间戳 mktime(hour,minute,second,month,day,year,[is_dst])     其参数可以从右向左省略,任何省略的参数都会被设置成本地日期和时间的当前值. 参数 描述 hour 可选.规定小时. minute 可选.规定分钟. second 可选.规定秒. month 可选.规定用数字表示的月. day 可选.规定天. year 可选.规定年.在某些系统上,合法值介于 1901 – 2038 之间.不过在 php教程 5 中已经不存在这个限制

给定两个字符串,获取两个字符串中最大相同的子串

1 package weekpratisce; 2 3 ///给定两个字符串,获取两个字符串中最大相同的子串 4 public class Demo9 { 5 public static void main(String[] args) { 6 String xx = "aaaaaaaaaaddddddd", yy = "45ddddda"; 7 String str = getMaxsubstring(xx, yy); 8 System.out.println(s

图结构练习——判断给定图是否存在合法拓扑序列

图结构练习——判断给定图是否存在合法拓扑序列 Time Limit: 1000MS Memory limit: 65536K 题目描述 给定一个有向图,判断该有向图是否存在一个合法的拓扑序列. 输入 输入包含多组,每组格式如下. 第一行包含两个整数n,m,分别代表该有向图的顶点数和边数.(n<=10) 后面m行每行两个整数a b,表示从a到b有一条有向边. 输出 若给定有向图存在合法拓扑序列,则输出YES:否则输出NO. 示例输入 1 0 2 2 1 2 2 1 示例输出 YES NO #inc