首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会是对的?要在php上使用<,>操作符来比较日期?

会是对的?要在php上使用<,>操作符来比较日期?
EN

Stack Overflow用户
提问于 2016-05-05 14:00:39
回答 2查看 2.1K关注 0票数 1

会是对的?如果使用<>操作符用于php上的比较日期?

我测试过了。而且工作很好。但是,我并没有建立文档来提供关于使用<>操作符进行比较日期的建议。

请告诉我,我们可以用<>操作符来比较php上的数据吗?

代码语言:javascript
复制
<?PHP
$today = "2010-10-19";
$expired = "2012-12-10";

if($expired > $today)
{
    echo "not expired";
}
else
{
    echo "expired";
}
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-05 14:07:38

只要您的日期是以可比较的格式,这将工作。由于将它们作为字符串进行比较,您需要确保较大的日期组件是第一个,而较小的组件是最后一个。例如,年份,然后是月份,然后是日期。总是包括前导零。这就是你在你的例子中所做的,所以它是有效的。

如果您没有这种格式的日期,您的比较将在某些时候失败。例如:

代码语言:javascript
复制
'2016-07-04' > '2016-01-07' // true
'04-07-2016' > '07-01-2016' // false

比较日期的最好方法是与DateTime()进行比较,因为DateTime对象是可比较的,并且还包括所有与日期相关的东西,如闰年和DST。

代码语言:javascript
复制
<?PHP
$today = new DateTime("2010-10-19");
$expired = new DateTime("2012-12-10");

if($expired > $today)
{
    echo "not expired";
}
else
{
    echo "expired";
}
票数 9
EN

Stack Overflow用户

发布于 2016-05-05 14:03:33

使用strtotime将日期时间描述转换为Unix时间戳,您可以轻松地将时间戳与<>运算符进行比较。

代码语言:javascript
复制
$today = strtotime('2010-10-19');// return 1287426600
$expired = strtotime('2012-12-10');// return 1355077800

if ($expired > $today) {// easily comparison of 1355077800 > 1287426600
    echo "not expired";
} else {
    echo "expired";
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37052626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档