[英]find if date is older than 30 days
日期字符串看起来像这样
2011-08-19 17:14:40
(年-月-日时:分:秒)
如何确定日期是否比当前日期早 30 天?
尝试使用这样的东西:
if(strtotime('2011-08-19 17:14:40') < strtotime('-30 days')) {
// this is true
}
此外,这个字符串看起来像是作为日期时间/时间戳字段存储在 SQL 中。 您可以直接使用旧日期从数据库中选择所有条目:
SELECT ... WHERE `datetime` + INTERVAL 30 DAY < NOW()
如果您使用的是 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.';
}
您可以按如下方式使用碳
if (30 - ((new \Carbon\Carbon($given_date, 'UTC'))->diffInDays()) < 0) {
echo "The date is older than 30 days";
}
strtotime('2011-08-19 17:14:40') + 30 * 24 * 60 * 60 < time();
使用蛋白酥皮库,这至少可以通过两种方式完成。
第一个如下所示:
(new Future(
new DateTimeParsedFromISO8601String('2011-08-19 17:14:40'),
new NDays(30)
))
->earlierThan(
new Now()
);
语义如下:首先,您从 ISO8601 字符串解析日期,然后创建一个比该日期晚三十天的未来日期,最后将其与当前日期时间进行比较,即now
。
第二种方法是从日期时间范围创建一个间隔并计算它所包含的天数。 它看起来像这样:
(new TotalFullDays(
new FromRange(
new FromISO8601('2011-08-19 17:14:40'),
new Now()
)
))
->value();
这两种方法都非常直观,不会让您记住特殊的 php 日期时间表达式。 相反,每个实现都是自动完成的; 您只需要构建一个适合您需求的正确对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.