【问题标题】:how to convert dateformat in php? [duplicate]如何在php中转换日期格式? [复制]
【发布时间】:2014-02-18 04:19:25
【问题描述】:

我从数据库中获取数据,它以2014-01-06 06:13:06 之类的格式为我提供日期。我想将此日期转换为Jan 6th 2014 格式。

这是我的代码:

<?php 
$query="SELECT Min(transaction_date) as start,Max(transaction_date) as end from transactions";
$result1= mysql_query($query) or die(mysql_error());
$ors1=mysql_fetch_array($result1);
$date= $ors1['start'];
echo date_format($date, 'g:ia \o\n l jS F Y');
?>

【问题讨论】:

  • echo date( 'g:ia \o\n l jS F Y', strtotime($ors1['start']))

标签: php mysql datetime


【解决方案1】:

试试这个

 <?php 
    $query="SELECT Min(transaction_date) as start,Max(transaction_date) as end from transactions";
    $result1= mysql_query($query) or die(mysql_error());
    $ors1=mysql_fetch_array($result1);
    $date= $ors1['start'];
    echo date('dS M Y' ,strtotime($date));
 ?>

参考网址:PHP Documentation

【讨论】:

    【解决方案2】:

    这样试试

    $date= $ors1['start'];
    $objdate=new DateTime($date);
    echo date_format($objdate, 'g:ia \o\n l jS F Y');
    

    【讨论】:

      【解决方案3】:

      你可以在MySQL自己试试这个

      SELECT 
          DATE_FORMAT(start, '%M %D %Y') as start_formatted,
          DATE_FORMAT(end, '%M %D %Y') as end_formatted
      FROM
          (SELECT 
              Min(transaction_date) as start, Max(transaction_date) as end
          from
              transactions) t;
      

      示例

      mysql> SELECT DATE_FORMAT(NOW(),'%M %D %Y');
      +-------------------------------+
      | DATE_FORMAT(NOW(),'%M %D %Y') |
      +-------------------------------+
      | January 27th 2014             |
      +-------------------------------+
      1 row in set (0.00 sec)
      

      【讨论】:

        【解决方案4】:

        你也可以这样试试:

        <?php
        echo 'Current time: ' . date('Y-m-d H:i:s') . "\n";
        
        $format = 'Y-m-d';
        $date = DateTime::createFromFormat($format, '2009-02-15');
        echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
        
        $format = 'Y-m-d H:i:s';
        $date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
        echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
        
        $format = 'Y-m-!d H:i:s';
        $date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
        echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
        
        $format = '!d';
        $date = DateTime::createFromFormat($format, '15');
        echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
        ?>
        

        上面的例子会输出类似于:

        Current time: 2010-04-23 10:29:35
        Format: Y-m-d; 2009-02-15 10:29:35
        Format: Y-m-d H:i:s; 2009-02-15 15:16:17
        Format: Y-m-!d H:i:s; 1970-01-15 15:16:17
        Format: !d; 1970-01-15 00:00:00
        

        更多信息:http://in1.php.net/manual/en/datetime.createfromformat.php

        【讨论】:

          【解决方案5】:

          使用strtotime 从时间的字符串表示中获取时间戳。 然后使用date 将时间戳格式化为您想要的任何格式。

          例如

          $formatted_date = date('g:ia \o\n l jS F Y', strtotime('2014-01-06 06:13:06 '));
          

          【讨论】:

            猜你喜欢
            • 2018-05-05
            • 2013-08-21
            • 1970-01-01
            • 1970-01-01
            • 2011-01-30
            • 1970-01-01
            • 2017-06-10
            • 1970-01-01
            相关资源
            最近更新 更多