【问题标题】:Show only the time from mySQL timestamp field using PHP使用 PHP 仅显示来自 mySQL 时间戳字段的时间
【发布时间】:2016-08-07 21:23:40
【问题描述】:

当我从数据库中获得echo['time'] 时,例如

2012-07-21 17:00:00

我的问题是我应该如何只显示我得到的每个时间戳的小时和分钟? (17:00)

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    你可以选择它为:

    SELECT TIME_FORMAT(`dateColumn`, '%H:%i') FROM ...
    

    或使用strtotime,如其他答案中所述。

    如果您确实想要以秒为单位的完整时间,您还可以使用:

    SELECT TIME(`dateColumn`) FROM ...
    

    http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

    【讨论】:

      【解决方案2】:

      您应该正确解析它并使用 DateTime 类回显您想要的内容:

      $time = '2012-07-21 17:00:00';
      $date = DateTime::createFromFormat( 'Y-m-d H:i:s', $time, new DateTimeZone( 'America/New_York'));
      echo $date->format( 'H:i'); // Will print 17:00
      

      Demo

      【讨论】:

        【解决方案3】:

        你可以照克里斯说的去做 echo date('H:i', strtotime('2012-07-21 17:00:00'));

        但如果可能,最好从 MySQL 进行处理,

        select date_format(time, '%H:%i') from table;

        应该检索数据并对其进行格式化!

        【讨论】:

          【解决方案4】:

          echo date('H:i', strtotime($row['time']));

          或者你可以用datetime functions格式化你的sql查询

          【讨论】:

            【解决方案5】:
            echo date('H:i', strtotime('2012-07-21 17:00:00'));
            

            【讨论】:

              【解决方案6】:

              我使用自己的代码。尝试这个.. 请按照以下步骤操作:-
              1. 从数据库表中选择时间假设:- $time = $row['time'];
              2. 创建一个名为 :- "time.php"
              的 php 文件 3.将以下代码粘贴到time.php

                <?php
              $ct= date('Y-m-d H:i:s');
              $now = new DateTime("$ct");
              $ref = new DateTime("$time");
              $diff = $now->diff($ref);
              $y=$diff->y;
              $m=$diff->m;
              $d=$diff->d;
              $h=$diff->h;
              $i=$diff->i;
              $s=$diff->s;
              if($m>12)
              {
              echo $y;
              echo " year ago";
              }
              elseif($m<1 && $d<1 && $h<1 && $i<1 && $s<60)
              {
              echo $s;
              echo " sec ago";
              }
              elseif($m<1 && $d<1 && $h<1 && $i<60)
              {
              echo $i;
              echo " mins ago";
              }
              elseif($m<1 && $d<1 && $h<48)
              {
              echo $h;
              echo " hrs ago";
              }
              elseif($m<1 && $d<30 && $h<24)
              {
                  if($d==1)
                  {
                      echo 24+$h." hrs ago";
                  }
                  else
                  {
                      echo $d;
                      echo " days ago";
                  }
              }
              elseif($m<=12)
              {
                  if($m > 0)
                  {
                      echo $m;
                      echo " Month ago";
                  }
                  else
                  {
                      echo $d;
                      echo " days ago";
                  }       
              
              }
              
              ?> 
               <?php include "time.php";?> //use include/require function where you want to display time ago...
              
              1. 只需将该文件包含在您希望以格式显示时间的其他 php 文件中
                1 天前/ 30 天前.. 秒前.. 小时前.. 一个月前等等..

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2019-09-23
                • 2017-03-19
                • 1970-01-01
                • 2011-12-23
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2015-08-01
                相关资源
                最近更新 更多