gpt4 book ai didi

PHP 默认时间为 23 :59:59

转载 作者:行者123 更新时间:2023-11-29 05:23:52 25 4
gpt4 key购买 nike

我正在我的 wordpress 网站上运行抽奖页面。我在创建抽奖帖子时已经有了逻辑设置,抽奖页面已经根据“start_date”和“end_date”的自定义字段拉入帖子。我遇到的问题是,如果抽奖事件设置为从 2014 年 3 月 1 日开始,到 2014 年 3 月 19 日结束,一旦时间到达午夜 (12:00),帖子将在需要在 19 日继续进行时被删除。下面是我正在使用的查询代码。它适用于具有开始日期和结束日期自定义字段的帖子。在这种情况下,我几乎需要一个默认值来删除帖子,时间是 03/19/2014,时间是 23:59:59。我需要 23:59:59 的默认时间。是否存在全局更改,使帖子在 23:59:59 指定的日期删除?我希望这可以解释。

 <?php // The Query     

$startdate = date('Y-m-d G:i:s');
$enddate = date('Y-m-d G:i:s');
$args = array(
'post_type' => 'page',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'meta_query' => array(
array(
'key' => 'sweepstakes_startdate',
'value' => $startdate,
'compare' => '<='

),
array(
'key' => 'sweepstakes_enddate',
'value' => $enddate,
'compare' => '>='

)
)
);
$the_query = new WP_Query( $args );

最佳答案

不,除了指定文字 '23:59:59' 之外,没有真正的简写来指定它。

似乎最快的补丁只是一些 PHP 逻辑,用于在发送到您的查询之前重置 $enddate

如果 $enddate 的时间部分是午夜,则将发送给查询的值加一天减一秒。

这确实稍微改变了规范;这意味着指定 '2014-03-19 00:00:00' 的结束日期值等同于指定 '2014-03-19 23:59:59' 的结束日期值,这基本上意味着无法指定恰好在午夜结束的抽奖事件。但是您可以在 00:00:01 结束抽奖。


在 MySQL 中,我们通常将一个时间段的“结束”(如您所描述的)指定为第二天的午夜(而不是前一天的“23:59:59”),并使用“less比”比较,而不是“小于或等于”比较。

例如:

WHERE mydatetimecol >= '2014-03-19'
AND mydatetimecol < '2014-03-20'

而不是

WHERE mydatetimecol >= '2014-03-19'
AND mydatetimecol <= '2014-03-19 23:59:59'

MySQL 确实对 DATETIME 值有一些方便的 INTERVAL 操作...

WHERE mydatetimecol >= '2014-03-19'
AND mydatetimecol < '2014-03-19' + INTERVAL 1 DAY

如果我绝对必须“倒退”一秒钟,我会使用间隔操作,例如:

WHERE mydatetimecol >= '2014-03-19'
AND mydatetimecol <= '2014-03-19' + INTERVAL 1 DAY + INTERVAL -1 SECOND

请注意,某些时间值实际上可以具有毫秒精度,例如“23:59:59.997”,如果您使用“23:59”,您可能会在一个时间段的结束和另一个时间段的开始之间留下间隙: 59'。

这对于存储在 MySQL 中的时间数据类型来说并不是真正的问题(但其他 RDMBS,例如 SQL Server 可以存储小数秒)。对于您的特定应用程序来说,这可能不是问题(但在更一般的情况下,我们通常希望行落入特定的桶中,而不是落在桶之间的裂缝之间。)

而且,我会谨慎地将 86,399 秒添加到日期值,具体取决于时区是否为夏令时,有些日子是 23 小时或 25 小时。

关于PHP 默认时间为 23 :59:59,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22518423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com