Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将日期转换为已使用strotime的时间戳_Php_Date - Fatal编程技术网

Php 将日期转换为已使用strotime的时间戳

Php 将日期转换为已使用strotime的时间戳,php,date,Php,Date,我正在尝试将未来7天的日期转换为时间戳,以便与数据库中的日期时间戳进行比较,以获得一些结果 此功能用于获取从今天开始的未来7天 $next_date = date("d/m/Y", strtotime("7 day")) 输出 30/04/2014 现在,我再次在$next_date变量上运行strotime(),该变量保存接下来的7天并转换为时间戳 echo strtotime($next_date); 这是行不通的。我遵循了这个答案,很少有其他答案。是否先存储strotime的值 $t

我正在尝试将未来7天的日期转换为时间戳,以便与数据库中的日期时间戳进行比较,以获得一些结果

此功能用于获取从今天开始的未来7天

$next_date = date("d/m/Y", strtotime("7 day"))
输出

30/04/2014
现在,我再次在$next_date变量上运行strotime(),该变量保存接下来的7天并转换为时间戳

echo strtotime($next_date);

这是行不通的。我遵循了这个答案,很少有其他答案。

是否先存储strotime的值

$timestamp_in_7_days = strtotime('7 day');
$next_date = date('d/m/Y', $timestamp_in_7_days);

没有必要在unix时间戳和日期格式之间来回浪费时间。

作为替代建议,您可以查看PHP的内部
DateTime()
DateInterval()
类。它使格式之间的转换和日期/时间的加减更加容易<代码>日期间隔至少需要PHP 5.3版

例如:

// create a current DateTime
$currDate = new DateTime();

// copy the current DateTime and
// add an interval of 7 days
$nextDate = clone $currDate;
$nextDate->add(new DateInterval('P7D'));

// both objects are easily converted to timestamps
echo $currDate->getTimestamp(); // e.g: 1398296728
echo $nextDate->getTimestamp(); // e.g: 1398901528

// and both can be easily formatted in other formats
echo $currDate->format('d/m/Y'); // e.g: 24/04/2014
echo $nextDate->format('d/m/Y'); // e.g: 01/05/2014
编辑

为完整起见,下面是另一个示例,说明如何向
DateTime
对象添加七天:

$now  = new DateTimeImmutable();
$then = $now->modify('+7 days');

var_dump($now->format('Y-m-d'), $then->format('Y-m-d'));
收益率:

string(10) "2016-05-24"
string(10) "2016-05-31"
您还可以使用
DateTime
-此用例的区别在于
DateTime::modify()
将修改实例
$now
,其中
DateTimeImmutable::modify()
将返回一个新的
DateTimeImmutable
对象-因此,如果您需要创建一个新对象,同时保留旧对象,这可能是最简洁的方法

希望这有帮助:)


  • 确实如此。我只是想补充一句,海报上写着“它不起作用”。我猜问题在于,您制作了$next_date格式的d/m/Y,根据PHP手册:
    通过查看各个组件之间的分隔符,可以消除m/d/Y或d-m-Y格式中日期的歧义:如果分隔符是斜杠(/),则假定为美式m/d/Y;而如果分隔符是破折号(-)或点(.),则假定为欧洲d-m-y格式。为了避免潜在的歧义,最好尽可能使用ISO 8601(YYYY-MM-DD)日期或DateTime::createFromFormat()。
    @Kai-是的,这是正确的。他可以通过使用mktime或其他方法拆分字符串来实现,但在我看来,这是最干净的方法;)是的,如果不是你打败了我,我自己也会这么说