【问题标题】:Convert a unixtime stamp for php [closed]为php转换unixtime戳[关闭]
【发布时间】:2013-01-02 14:27:40
【问题描述】:

我需要知道如何将 unix 时间戳转换为从现在到该时间戳的剩余时间。如果剩余时间为 1 天,则必须显示 1 天,或者如果为 15 分钟,则显示 %dMin 以此类推,以此类推为周、小时、年、月。

目前我使用

$realtime = strftime("%B %d %Y %r",1295058844);

【问题讨论】:

  • 提问前请使用搜索功能。如何获取时差之前已经回答过很多次了。我们希望您进行研究。

标签: php datetime unix-timestamp


【解决方案1】:

先获取当前时间戳的差值(由time()返回):

$timestamp = 1295058844;

$diff = time() - $timestamp;

然后编写一个函数,将结果格式化为天/小时/分钟等。例如,您可以通过将 $diff 除以 1 天的秒数来获得天数:

$days = floor($diff / (60 * 60 * 24));

60 秒 * 60 分钟 * 24 小时。由于这个数字永远不会改变,你可以写:

$days = floor($diff / 86400);

获取剩余秒数并计算小时数、分钟数等

【讨论】:

    【解决方案2】:

    您可以使用 PHP 的 DateTime 类非常轻松地做到这一点:-

    $futureDate = new DateTime('3rd April 2014');
    

    或者

    $futureDate = new DateTime();
    $futureDate->setTimestamp(1295058844);
    

    你明白了。

    $now = new DateTime();
    $diff = $futureDate->diff($now);
    

    这会给你一个DateInterval对象:-

    var_dump($diff);
    
    object(DateInterval)[3]
      public 'y' => int 1
      public 'm' => int 3
      public 'd' => int 0
      public 'h' => int 9
      public 'i' => int 8
      public 's' => int 58
      public 'invert' => int 1
      public 'days' => int 455
    

    然后你可以这样做:-

    echo "Time left = {$diff->y} years, {$diff->m} months, {$diff->d} days, {$diff->h} hours, {$diff->i} minutes, {$diff->s} seconds";
    

    给:-

    剩余时间 = 1 年 3 个月 0 天 9 小时 8 分钟 58 秒

    【讨论】:

      猜你喜欢
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      • 2018-09-17
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      相关资源
      最近更新 更多