Php 查找日期是否早于30天
日期字符串如下所示Php 查找日期是否早于30天,php,string,datetime,date,time,Php,String,Datetime,Date,Time,日期字符串如下所示 2011-08-1917:14:40 (年-月-日小时:分:秒) 如何确定日期是否比当前日期早30天以上?尝试使用以下方法: if(strtotime('2011-08-19 17:14:40') < strtotime('-30 days')) { // this is true } if(strotime('2011-08-1917:14:40')
2011-08-1917:14:40
(年-月-日小时:分:秒)
如何确定日期是否比当前日期早30天以上?尝试使用以下方法:
if(strtotime('2011-08-19 17:14:40') < strtotime('-30 days')) {
// this is true
}
if(strotime('2011-08-1917:14:40')
此外,这个字符串看起来像是作为datetime/timestamp字段存储在SQL中的。您可以使用以下命令直接从数据库中选择具有旧日期的所有条目:
SELECT ... WHERE `datetime` + INTERVAL 30 DAY < NOW()
选择。。。其中`datetime`+间隔30天
strotime('2011-08-19 17:14:40')+30*24*60*60
您可以按如下方式使用碳
if (30 - ((new \Carbon\Carbon($given_date, 'UTC'))->diffInDays()) < 0) {
echo "The date is older than 30 days";
}
if(30-((new\Carbon\Carbon($given_date,'UTC'))->diffInDays())<0){
回显“日期早于30天”;
}
如果您使用的是PHP 5.3或更高版本,您可以执行以下操作:
$someDate = new \DateTime('2011-08-19 17:14:40');
$now = new \DateTime();
if($someDate->diff($now)->days > 30) {
echo 'The date was more than 30 days ago.';
}
对于库,这至少可以通过两种方式实现
第一个看起来如下所示:
(new Future(
new DateTimeParsedFromISO8601String('2011-08-19 17:14:40'),
new NDays(30)
))
->earlierThan(
new Now()
);
语义如下:首先,从ISO8601字符串解析一个日期,然后创建一个比该日期晚30天的未来日期,最后将其与当前日期时间进行比较,即,now
第二种方法是从datetime范围创建一个间隔,并计算它包含的天数。看起来是这样的:
(new TotalFullDays(
new FromRange(
new FromISO8601('2011-08-19 17:14:40'),
new Now()
)
))
->value();
这两种方法都非常直观,不会让您记住特殊的php日期时间表达式。相反,每个实现都是自动完成的;您只需要构建一个适合您需要的正确对象。它应该是
strotime('2011-08-19 17:14:40')+30*24*60*60