首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP:几天、几个小时和几分钟到某个特定的日期?

PHP:几天、几个小时和几分钟到某个特定的日期?
EN

Stack Overflow用户
提问于 2016-01-27 10:25:53
回答 3查看 3.7K关注 0票数 1

我正在尝试使用php将剩余的几天、几个小时和几分钟的时间分配到特定的日期。

但是,我从代码中得到了一个非常奇怪的输出,如下所示:

代码语言:javascript
复制
-16828 days and -11 hours and -21 minutes and -24 seconds 

未来的日期以这种格式存储在mysql数据库中:

代码语言:javascript
复制
29/01/2016 7pm

所以我就这么做了:

代码语言:javascript
复制
$Draw_time = "29/01/2016 7pm";

$date = $Draw_time;
$timestamp = strtotime($date);
$new_date = date('Y-m-d a',$timestamp );

$seconds = strtotime($new_date) - time();

$days = floor($seconds / 86400);
$seconds %= 86400;

$hours = floor($seconds / 3600);
$seconds %= 3600;

$minutes = floor($seconds / 60);
$seconds %= 60;


echo "$days days and $hours hours and $minutes minutes and $seconds seconds";

但是当我运行这段代码时,我得到了上面奇怪的输出!

我知道这可能是因为一些原因,但我唯一能想到的就是我正在以我的格式使用a

有人能就这个问题提出建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-27 10:44:42

只需使用DateTime类,如

代码语言:javascript
复制
$Draw_time = "29/01/2016 7pm";

$date = DateTime::createFromFormat("d/m/Y ha",$Draw_time);
$date2 = new DateTime();

echo $diff = $date2->diff($date)->format("%a days and %H hours and %i minutes and %s seconds");
票数 3
EN

Stack Overflow用户

发布于 2016-01-27 10:44:36

尝尝这个

代码语言:javascript
复制
<?php 

    $Draw_time = str_replace('/', '-', "29/01/2016 7pm");

    $now = new DateTime();

    $futureDate = new DateTime($Draw_time);

    $interval = $futureDate->diff($now);
    echo $interval->format("%a days %h hours %i minutes %s seconds");
?>
票数 0
EN

Stack Overflow用户

发布于 2016-01-27 11:37:27

尝尝这个。

代码语言:javascript
复制
$draw_time = "2016/01/29 7pm";
$date_time = explode(" ", $draw_time);// make separate date and time in array
$date = strtotime($date_time[0]); // convert your date(2016/01/29) into php time
$time = strtotime($date_time[1]); // convert your time(7pm) into php time
$date = $date + $time; // make total time to count
$new_Date = $date - (time()); // convert into difference from current time
$day = $new_Date % 86400;
$hrs = $new_Date % 3600;
$min = $new_Date % 60;
echo "Day= ".(date("d",$day));
echo " Hours= ".(date("h",$hrs));
echo " Minutes= ".(date("i",$min));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35034716

复制
相关文章

相似问题

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