【发布时间】:2019-02-20 09:53:00
【问题描述】:
我们基本上有一个日期格式,例如:'d/m/y'。示例 -> '20/02/2019',作为字符串。
我们需要能够得到今天的日期和今天的日期 + 15 天。然后检查开始时给出的日期是否在这几天之间。
给定日期 X。检查日期 X 是否大于今天的日期 A 和 +15 天日期 B。
我们希望获取所有类型为 DateTime 的值,并且能够比较给定的日期是否在它们之间。
我们检查了几个不同的问题,但我无法完成,在我看来,因为据我所见,我没有正确使用 php 函数 strtotime。
我们已经检查了所有这些问题:
PHP date time greater than today
A non well formed numeric value encountered
PHP date compare older than 15 days
和其他页面,非常有用:
https://benholland.me/tutorials/2012/03/11/adding-and-subtracting-dates-and-times-in-php.html
但是,值仍然是错误的。
$date = $item->getData('attribute_name'); //Value as String
$data = date_create(date('d/m/Y',strtotime($date))); //Creating the DateTime object.
但这会自动给我们:
object(DateTime)#5793 (3) { ["date"]=> string(26) "1970-01-01 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/Madrid" }
在我看来,一定是某种格式错误,总是自动给我那个日期。
最后一个问题我也试过了:
$date = $item->getData('attribute_name'); //Value as String
$userDate = DateTime::createFromFormat('d/m/Y', $date);
if ($userDate === false) {
throw new InvalidArgumentException('Invalid date string');
}
$cmp = new DateTime('+15 days'); //today's date +15
if ($userDate <= $cmp) {
$userDate = new DateTime();
}
echo date_format($userDate, 'd/m/Y');
我错过了什么?有没有改进的方法?
谢谢
【问题讨论】:
标签: php date date-formatting