在 PHP 中查找日期时间对象与当前时间(以秒为单位)之间的差异
Finding the difference between a datetime object and current time (in seconds) in PHP
假设我有一个日期时间对象2015-12-31T12:59
。 PHP 中有没有办法以秒为单位找出当前日期时间和上述日期时间对象之间的差异?基本上,有没有办法找出从这一刻到未来日期时间对象指定的日期时间的秒数?
我做了一些挖掘,发现 PHP 中有一个 DateTime
class,但我不确定它是否采用像 2015-12-31T12:59
这样的格式输入。
Unix 系统上的日期可以以 Epoch 格式存储(例如从 1970-01-01 00:00:00 开始的秒数)。
time() 函数自然地执行此操作,其他日期可以使用 strtotime() 之类的方法进行转换。你所要做的就是用一个减去另一个来得到以秒为单位的时差
您可以尝试使用这种方式,此结果将给出秒、分钟、小时、天数的差异...
//use this way-----------------------
$c_time=//your current time
$date_current_time = date('Y-m-d H:i:s');
$datetime1 = new DateTime($c_time);
$datetime2 = new DateTime($date_current_time);
$difference = $datetime1->diff($datetime2);
$f6=$difference->y.' Y ';
$f5=$difference->m.' M';
$f4=$difference->d.' D';
$f3=$difference->h.' hr';
$f2=$difference->i.' min';
$f1=$difference->s.' sec';
if($f2==0 && $f3==0 && $f4==0 && $f5==0 && $f6==0)
{
if($f1<=20)
{
$time=" few sec ago";
}
else if($f1>20)
{
$time=$f1." ago";
}
}
else if($f3==0 && $f4==0 && $f5==0 && $f6==0)
{
if($f2<=2)
{
$time=" few min ago";
}
else if($f2>2)
{
$time=$f2." ago";
}
}
else if($f4==0 && $f5==0 && $f6==0)
{
$time=$f3." ago";
}
else if($f5==0 && $f6==0)
{
$time=$f4." ago";
}
else if($f6==0)
{
$time=$f5." ago";
}
else
{
$time=$f6." ago";
}
这可能有助于...获得时差
您可以使用 date() 函数将您的日期转换为自 Unix 纪元以来的秒数,然后您可以减去自 Unix 纪元以来的实际秒数。
$myDate = date('2015-12-31T12:59'); //convert your date in seconds
$now = time(); //convert now in seconds
$numberOfSeconds = $myDate - $now; //make the difference
注意:
Unix 纪元 = 1970 年 1 月 1 日 00:00:00 GMT
假设我有一个日期时间对象2015-12-31T12:59
。 PHP 中有没有办法以秒为单位找出当前日期时间和上述日期时间对象之间的差异?基本上,有没有办法找出从这一刻到未来日期时间对象指定的日期时间的秒数?
我做了一些挖掘,发现 PHP 中有一个 DateTime
class,但我不确定它是否采用像 2015-12-31T12:59
这样的格式输入。
Unix 系统上的日期可以以 Epoch 格式存储(例如从 1970-01-01 00:00:00 开始的秒数)。
time() 函数自然地执行此操作,其他日期可以使用 strtotime() 之类的方法进行转换。你所要做的就是用一个减去另一个来得到以秒为单位的时差
您可以尝试使用这种方式,此结果将给出秒、分钟、小时、天数的差异...
//use this way-----------------------
$c_time=//your current time
$date_current_time = date('Y-m-d H:i:s');
$datetime1 = new DateTime($c_time);
$datetime2 = new DateTime($date_current_time);
$difference = $datetime1->diff($datetime2);
$f6=$difference->y.' Y ';
$f5=$difference->m.' M';
$f4=$difference->d.' D';
$f3=$difference->h.' hr';
$f2=$difference->i.' min';
$f1=$difference->s.' sec';
if($f2==0 && $f3==0 && $f4==0 && $f5==0 && $f6==0)
{
if($f1<=20)
{
$time=" few sec ago";
}
else if($f1>20)
{
$time=$f1." ago";
}
}
else if($f3==0 && $f4==0 && $f5==0 && $f6==0)
{
if($f2<=2)
{
$time=" few min ago";
}
else if($f2>2)
{
$time=$f2." ago";
}
}
else if($f4==0 && $f5==0 && $f6==0)
{
$time=$f3." ago";
}
else if($f5==0 && $f6==0)
{
$time=$f4." ago";
}
else if($f6==0)
{
$time=$f5." ago";
}
else
{
$time=$f6." ago";
}
这可能有助于...获得时差
您可以使用 date() 函数将您的日期转换为自 Unix 纪元以来的秒数,然后您可以减去自 Unix 纪元以来的实际秒数。
$myDate = date('2015-12-31T12:59'); //convert your date in seconds
$now = time(); //convert now in seconds
$numberOfSeconds = $myDate - $now; //make the difference
注意: Unix 纪元 = 1970 年 1 月 1 日 00:00:00 GMT