【问题标题】:Limit form entries on a per hour basis?每小时限制表单条目?
【发布时间】:2014-06-14 21:49:18
【问题描述】:

我目前正在使用 Gravity Forms 插件,它设置为限制每天、每周、每月和每年的表单条目;不幸的是,我需要按小时计算。这是我正在编辑的原始代码:

private static function get_limit_period_dates($period){
    if(empty($period))
        return array("start_date" => null, "end_date" => null);

    switch($period){

        case "day" :
            return array(
                "start_date" => gmdate("Y-m-d"),
                "end_date" => gmdate("Y-m-d 23:59:59"));
        break;

        case "week" :
            return array(
                "start_date" => gmdate("Y-m-d", strtotime("Monday this week")),
                "end_date" => gmdate("Y-m-d 23:59:59", strtotime("next Sunday")));
        break;

        case "month" :
            $month_start = gmdate("Y-m-1");
            return array(
                "start_date" => $month_start,
                "end_date" => gmdate("Y-m-d H:i:s", strtotime("{$month_start} +1 month -1 second")));
        break;

        case "year" :
            return array(
                "start_date" => gmdate("Y-1-1"),
                "end_date" => gmdate("Y-12-31 23:59:59"));
        break;
    }
}

我尝试了以下代码,我认为从 0 分 0 秒开始,然后添加一个小时就可以了,但它不起作用:

case "hour" :
            return array(
                "start_date" => gmdate("H:00:00"),
                "end_date" => gmdate("H:i:s", strtotime("+1 hour")));
        break;

我从未使用过 gmdate 函数,因此如果有人愿意简要解释我所缺少的内容,我很想了解这一点。谢谢!

【问题讨论】:

    标签: php date strtotime gravity-forms-plugin hour


    【解决方案1】:

    我想这可能是你想要的:

    case "hour" :
        $hour_start = gmdate("Y-m-d H:00:00");
        return array(
            "start_date" => $hour_start,
            "end_date" => gmdate("Y-m-d H:i:s", strtotime("{$hour_start} +1 hour")));
    break;
    

    您必须在开始时间后 1 小时完成 。否则从现在开始需要 1 小时。

    【讨论】:

    • 该死的,我走得太远了。像魅力一样工作,非常感谢 John V.!
    猜你喜欢
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多