微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

仅在工作日和特定时间为真

如何解决仅在工作日和特定时间为真

我将 PHP 7.4.1Laravel Framework 6.20.12carbon 库一起使用。

如果某个日期跨越 true 变量,我想从星期一到星期五返回 $sendPost 仅一次。我的定时任务每 5 Minutes 运行一次。

我试过了:

<?PHP

require 'vendor/autoload.PHP';

use Carbon\Carbon;

function checkMsgFired() {
    $Now = Carbon::Now();
    // $Now = Carbon::createFromFormat('d/m/Y H:i:s',"19/1/2021 14:43:00");

    $lastSendPost = Carbon::createFromFormat('d/m/Y H:i:s',"18/1/2021 14:43:00"); // the posting has already happended today

    $post = array();
    $post['Frequency'] = "MoToFr"; // send only from monday to friday at a specific date once
    $post['sendPost'] = Carbon::createFromFormat('H:i:s',"14:40:00"); // when the post should be send


    if($post['Frequency'] === "MoToFr") {
        // if it is a WEEKDAY
        if($Now->dayOfWeek !== Carbon::SATURDAY or $Now->dayOfWeek !== Carbon::SUNDAY) {
            // $lastPosting didn't happen today
            if(!$lastSendPost->isToday() && $Now->gt($post['sendPost'])){
                return true;
            }
            else{
                return false;
            }
        } else {
            return false;
        }
    }
}


var_dump(checkMsgFired());

不过,发帖时间好像不行。如何检查事件是否已在准确时间触发一次

此外,是否有更简单的版本来编码?

感谢您的回复

解决方法

可能是什么?当时间在 14:40 和 14:45 之间时,这将为您提供 true,只要您的 cron 作业每 5 分钟运行一次,它应该大部分是正确的。

<?php

require 'vendor/autoload.php';

use Carbon\Carbon;

function checkMsgFired() {
    $now = Carbon::now();
    $frequency = "MoToFr";
    $sendPost = Carbon::createFromFormat('H:i:s',"14:40:00");

    if ($frequency === "MoToFr") {
        if ($now->isWeekday()) {
            return $now->between($sendPost,$sendPost->addMinutes(5));
        }
    }

    return false;
}

var_dump(checkMsgFired());

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?