首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在php中将字符串转换为时间

在php中将字符串转换为时间
EN

Stack Overflow用户
提问于 2011-11-12 01:48:05
回答 4查看 34.4K关注 0票数 6

如何在php中将"2011-11-03T17:27:56Z"转换为时间。

我想要与当前时间的时差。

也就是说,如果与当前时间的时间差是10分钟,我想要10分钟。如果是1天,那么我想要1天。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-12 01:52:41

这一小段代码将为您提供从现在到给定日期的秒数差。

代码语言:javascript
运行
复制
$dateString = "2011-11-03T17:27:56Z";
$date = strtotime($dateString);
$diff = time() - $date;
echo $diff;

要给出你想要的特定格式,你可以使用下面的函数,我找到了here

代码语言:javascript
运行
复制
function time_diff($s) { 
    $m = 0; $hr = 0; $d = 0; $td = "now";
    if ($s > 59) { 
        $m = (int)($s/60); 
        $s = $s-($m*60); // sec left over 
        $td = "$m min"; 
    } 
    if ($m > 59) { 
        $hr = (int)($m / 60); 
        $m = $m - ($hr*60); // min left over 
        $td = "$hr hr"; 
        if ($hr > 1) {
            $td .= "s";
        }
        if ($m > 0) {
            $td .= ", $m min";
        }
    } 
    if ($hr > 23) { 
        $d = (int) ($hr / 24); 
        $hr = $hr-($d*24); // hr left over 
        $td = "$d day"; 
        if ($d > 1) {
            $td .= "s";
        }
        if ($d < 3) { 
            if ($hr > 0) {
                $td .= ", $hr hr";
            }
            if ($hr > 1) {
                $td .= "s";
            }
        } 
    } 
    return $td; 
} 

将两者结合起来,您会得到以下结果:

代码语言:javascript
运行
复制
$dateString = "2011-11-03T17:27:56Z";
$date = strtotime($dateString);
$diff = time() - $date;
echo time_diff($diff);

输出:

8天

票数 7
EN

Stack Overflow用户

发布于 2011-11-12 01:53:26

代码语言:javascript
运行
复制
$diffInSecs = time() - strtotime('2011-11-03T17:27:56Z');
票数 3
EN

Stack Overflow用户

发布于 2011-11-12 02:04:19

工作示例:(codepad here)

代码语言:javascript
运行
复制
<?php

$time_str = "2011-11-03T17:27:56Z";

//echo date('d/m/y H:i:s', strtotime($time_str));
$diff = abs(strtotime("now") - strtotime($time_str)); 

$years   = floor($diff / (365*60*60*24)); 
$months  = floor(($diff - $years * 365*60*60*24) / (30*60*60*24)); 
$days    = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
$hours   = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24)/ (60*60)); 
$minuts  = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60)/ 60); 
$seconds = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60 - $minuts*60)); 
printf("%d years, %d months, %d days, %d hours, %d minuts\n, %d seconds\n", $years, $months, $days, $hours, $minuts, $seconds);

(比较所用的时间:How to calculate the difference between two dates using PHP?)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8097922

复制
相关文章

相似问题

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