Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我如何找到以下字符串日期格式:";年5月24日星期一或之前;通过DateTime strottime_Php_Date_Datetime_Strtotime - Fatal编程技术网

Php 我如何找到以下字符串日期格式:";年5月24日星期一或之前;通过DateTime strottime

Php 我如何找到以下字符串日期格式:";年5月24日星期一或之前;通过DateTime strottime,php,date,datetime,strtotime,Php,Date,Datetime,Strtotime,我在找维多利亚节。假期日期为:“5月24日星期一或之前” 我找不到DateTime可以接受的正确格式 当我试图运行这段代码时,我得到一个致命的错误: 致命错误:未捕获的异常“exception”带有消息 'DateTime::\构造():无法分析时间字符串(星期一或 2015年5月24日之前)位置7(o):无法找到时区 在数据库中 有没有关于如何通过DateTime获得这个日期的建议? 蒂安克斯 您可以尝试以下方法: function victoria_day() { $t = strt

我在找维多利亚节。假期日期为:“5月24日星期一或之前”

我找不到DateTime可以接受的正确格式

当我试图运行这段代码时,我得到一个致命的错误:

致命错误:未捕获的异常“exception”带有消息 'DateTime::\构造():无法分析时间字符串(星期一或 2015年5月24日之前)位置7(o):无法找到时区 在数据库中

有没有关于如何通过DateTime获得这个日期的建议? 蒂安克斯

您可以尝试以下方法:

function victoria_day() {
    $t = strtotime('May 25');
    return $t - (date("N")-1)*24*60*60;
}
您可以尝试以下方法:

function victoria_day() {
    $t = strtotime('May 25');
    return $t - (date("N")-1)*24*60*60;
}
你最好使用这个函数。这样的东西应该适合:-

function getVictoriaDay($year = null)
{
    if(!$year){
        $year = (int)(new \DateTime())->format('Y');
    }
    $victoriaDay = new \dateTime("$year-05-24");
    if($victoriaDay->format('D') !== 'Mon'){
        $victoriaDay->modify('previous monday');
    }
    return $victoriaDay;
}

您最好使用该功能。这样的东西应该适合:-

function getVictoriaDay($year = null)
{
    if(!$year){
        $year = (int)(new \DateTime())->format('Y');
    }
    $victoriaDay = new \dateTime("$year-05-24");
    if($victoriaDay->format('D') !== 'Mon'){
        $victoriaDay->modify('previous monday');
    }
    return $victoriaDay;
}

谢谢。这对我很有用!但是经过一番思考。。。我发现我可以用“$victoriaDay=newDateTime”(“前一个星期一$GYear-05-25”,newDateTimeZone(“UTC”));“@codingnighter2000我很惊讶它能起作用,但是。干得好:)谢谢。这对我很管用!但是经过一番思考。。。我发现我可以用“$victoriaDay=newDateTime”(“前一个星期一$GYear-05-25”,newDateTimeZone(“UTC”));“@codingnighter2000我很惊讶它能起作用,但是。干得好:)