【问题标题】:How to validate start and end datetime of a content in php如何在php中验证内容的开始和结束日期时间
【发布时间】:2017-10-10 10:01:56
【问题描述】:

我正在开发一个新闻门户网站,其中新闻(内容)将在特定时间后过期。问题是我一次只能显示一个新闻,我不知道如何验证它并检查是否数据库中是否已经存在相同时长的新闻?

注意用户也可以添加未来(即将到来的)新闻。示例如下

$newsStartDate = '2017-10-10 14:52:10'; 
$newsEndDate = '2017-10-11 14:53:10';

我在数据库中有 2 个日期时间类型列(开始,过期),现在我必须知道在选定的$newsStartDate$newsEndDate 的持续时间内已经存在任何新闻。

【问题讨论】:

    标签: php mysql datetime


    【解决方案1】:

    最好在数据库中与从数据库中选择的BETWEEN 进行比较。示例:

    SELECT * FROM News WHERE datetime BETWEEN 2017-10-10 14:52:10 AND 2017-10-11 14:53:10;
    

    或者在你的情况下:

    SELECT * FROM News WHERE start < NOW() AND expire > NOW();
    

    但是如果你想在 php 中比较日期,你可以使用比较运算符来处理日期:

    if ($newsDate > $newsStartDate && $newsDate < $newsEndDate) { }
    

    在这里查看更多:

    PHP check if date between two dates

    【讨论】:

    • 我们有 2 个值要检查,还有 2 个列,它不会工作,没办法。
    • 在这种情况下,NOW() 应该会有所帮助:SELECT * FROM News WHERE start &lt; NOW() AND expire &gt; NOW();
    • 我们不必将它与 now 进行比较,而是与 $newsStartDate 和 $newsEndDate 进行比较。请准备好问题。
    • 不在数据库中比较它的决定真是一个奇怪的决定。但如果你想这样做,你可以使用比较运算符来处理日期:if ($newsDate &gt; $newsStartDate &amp;&amp; $newsDate &lt; $newsEndDate) { }
    猜你喜欢
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 2015-09-29
    • 2021-09-06
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多