初学者的问题:在PHP时间变量中添加什么?


Beginner's question on what to add in a PHP time variable

我在php.net上找到了这个脚本,并找到了现在和未来一天之间的差异。我的问题很简单,是一个采样时间,还是我怎样才能得到$future_date所需的采样时间?还有-1970的目的是什么?

当到达或通过future_date时,我如何显示消息?

<?php
function time_difference($endtime){
    $days= (date("j",$endtime)-1);
    $months =(date("n",$endtime)-1);
    $years =(date("Y",$endtime)-1970);
    $hours =date("G",$endtime);
    $mins =date("i",$endtime);
    $secs =date("s",$endtime);
    $diff="'day': ".$days.",'month': ".$months.",'year': ".$years.",'hour': ".$hours.",'min': ".$mins.",'sec': ".$secs;
    return $diff;
}   
$end_time = $future_date - time();
$difference = time_difference($end_time);
echo $difference;
//sample output
'day': 2,'month': 1,'year': 0,'hour': 2,'min': 05,'sec': 41
?>

unix时间戳检查文档中的time()和mktime()

你从彼此减去两个值,所以他们需要兼容的格式才能做到这一点。及时检查文档可以使你避免这个问题。

date()也是一个您可能想要检查的函数。使用date和正确的参数,它将返回当前年份(Y)、月份(m)或月份的一天(d),您可以对这些值进行添加和减去,然后将它们传递给mktime以获得unix时间戳,如unix时间戳格式的当前年份:

$currentyear = mktime(date(Y));

下面将设置$future_date为2011年12月1日

$future_date = mktime(0, 0, 0, 12, 1, 2011);

所以Hour Min Sec是

$future_date = mktime(H, M, S, 12, 1, 2011);

下面是13:21:59 1st Dec 2011

$future_date = mktime(13, 21, 59, 12, 1, 2011);

$future_date应该是unix时间戳。

$future_date = strtotime("next week");

检查时间是否已到达

if($future_date <= time()) echo "Date reached";

$future_date将是一个整数时间戳(从1970年1月1日开始以秒为单位),表示未来的某个时间。

即:$nextWeek = time() + (7 * 24 * 60 * 60);

取当前日期/时间,并加上7天的秒值(24小时,每小时60分钟,每分钟60秒),得到从现在起一周的整数时间

Jan 1, 1970是重要的-它在UNIX中被称为Epoch(1970年1月1日00:00:00 GMT),并且经常被用作日期和/或计算机"时间"(时间0)的起点。