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日期和时间到办公时间内的周数_Php_Date_Time - Fatal编程技术网

修改php日期和时间到办公时间内的周数

修改php日期和时间到办公时间内的周数,php,date,time,Php,Date,Time,我有一个PHP函数,它可以修改当前日期时间并添加2周,同时向数据库添加条目,并在2周期满后向用户发送电子邮件。该函数将覆盖该条目,并让下一个用户打开该表条目 public function UpdateDemos(){ global $wpdb; $table_name = $wpdb->prefix . "yearbook_hub_accounts"; $results = $wpdb->get_results(

我有一个PHP函数,它可以修改当前日期时间并添加2周,同时向数据库添加条目,并在2周期满后向用户发送电子邮件。该函数将覆盖该条目,并让下一个用户打开该表条目

public function UpdateDemos(){
        global $wpdb;

        $table_name = $wpdb->prefix . "yearbook_hub_accounts";
        $results = $wpdb->get_results( "SELECT * FROM $table_name", OBJECT );

        foreach ($results as $account){
            if($account->requested){
                $requestDate = new DateTime($account->requested);
                $requestDateExpires = $requestDate->modify("+2 weeks");
                $todaysDate = new DateTime();

                if($requestDateExpires->getTimestamp() < $todaysDate->getTimestamp()){
                    self::send_notification_email($account);
                    $wpdb->update($table_name, ['requested' => null, 'email' => null, 'password' => self::generatePassword()], ['id' => $account->id]);
                }
            }
        }

确切的规则是什么?当+2周在周末或营业时间之外时,您希望发生什么?另外,您尝试过解决这个问题吗?规则是,如果重置在办公时间之外,请在下一个工作日9点重置,这应该不会太难实现。你记下日期,确定一周中的哪一天和时间。如果不在营业时间内,你可以在9点将其移至下一个工作日。你在这个过程中遇到了什么问题?
$requestDateExpires->getTimestamp() < $todaysDate->getTimestamp()
$today = date("D");
switch($today){
    case "Mon":
    case "Tue":
    case "Wed":
    case "Thurs":
    case "Fri":
        $days = 14;
        break;
    case "Sat":
        $days = 16;
        break;
    case "Sun":
        $days = 15;
        break;
    default:
        break;
}