首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自MySQL时间戳列的d-m-Y格式的输出日期

来自MySQL时间戳列的d-m-Y格式的输出日期
EN

Stack Overflow用户
提问于 2015-07-18 10:15:54
回答 2查看 1.8K关注 0票数 1

我有一个数据库表,当有人注册我的服务时,它处理时间戳。时间戳工作正常,并一直在数据库中插入,但我只需要日期、月和年格式。请看一下我的代码:

代码语言:javascript
复制
    if((!isset($_SESSION['USER'])) || (!isset($_SESSION['UID'])) || (!isset($_SESSION['UTYPE'])) || (($_SESSION['UTYPE']!='D') && ($_SESSION['UTYPE']!='F') && ($_SESSION['UTYPE']!='T')))
{
    header( 'Location: login.html' );
}
else
{
    include 'connection.php';
    include 'constants.php';

    $file_name = "Avanti-Website-Leads-".date('dmy-His');

    echo "<html><head>";
    ?>
    <script src="javascript/jquery-1.9.1.js"></script>
    <script type="text/javascript">
    function export2excel(file_name)
    {
        var link = document.createElement('a');
        link.download = file_name+".xls";
        link.href = 'data:application/vnd.ms-excel,' + encodeURIComponent($('body').html());
        link.click();
    }
    </script>

    <?php

    echo "</head><body onload=\"export2excel('".$file_name."')\" >";

    $dbh = new PDO("mysql:host=".$dbhost.";dbname=".$dbname, $dbuser, $dbpass);
    unset($dbhost, $dbuser, $dbpass, $dbname);

    if(($_SESSION['UTYPE']=='D')||($_SESSION['UTYPE']=='F'))
    {
        $query = "SELECT * FROM `bookavanti` where uid = ".$_SESSION['UID']." order by `bookavanti`.`lastupdate` DESC";
    }
    else
    {
        $query = "SELECT * FROM bookavanti order by lastupdate";
    }

    $sql = $dbh->prepare($query);
    $sql->execute();
    $affected_rows = $sql->rowCount();
    if($affected_rows>0)
    {
        echo "<table style='font-size:12px;text-align:center;'>";
        echo "<tr><th>Booking Time</th><th>Booking Type</th><th>Client Name</th><th>Email Address</th><th>Contact No.</th><th>Address</th><th>Pin Code</th><th>City</th><th>State</th></tr>";
        for ($i=0; $i < $affected_rows; $i++)
        {
            $row = $sql->fetch(PDO::FETCH_ASSOC);
            $x = explode('-',$row['lastupdate'],0);
            echo "<tr><td>".date("m.d.y",$x)."</td><td>".$row['type']."</td><td>".$row['name']."</td><td>".$row['email']."</td><td>".$row['contact']."</td><td>".$row['address']."</td><td>".$row['pin']."</td><td>".$row['city']."</td><td>".$row['state']."</td></tr>";
        }
        echo "</table>";
    }
    echo "</body></html>";

我相信这些台词

代码语言:javascript
复制
$x = explode('-',$row['lastupdate'],0);
        echo "<tr><td>".date("m.d.y",$x)."</td>

有问题了。如何将时间戳输入输出到do格式。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-18 10:29:54

就像您知道的,日期需要一个整数(作为来自时代的Unix时间戳)作为第二个参数,它是可选的,默认情况下是当前时间戳。

时间戳 可选时间戳参数是一个整数Unix时间戳,如果没有给出时间戳,该时间戳默认为当前本地时间。换句话说,它默认为time()的值。

第二,$x = explode('-',$row['lastupdate'],0)基本上和说$x = array($row['lastupdate'])完全一样,如果你把$x交给date(),那就没有什么意义了。

你可能想做更多的事情。

代码语言:javascript
复制
list($year, $month, $day) = explode('-', $row['lastupdate']);
$date = "$month.$day.$year";

它通过连字符拆分存储在MySQL中的格式化日期字符串,并按所需的顺序重新组装部件。如果格式化的日期字符串包含的不仅仅是日期,您也可以先按空格拆分字符串,然后再用连字符分割字符串,就像这样.

代码语言:javascript
复制
// Say your $row['lastupdate'] string is '2015-07-18 13:29:00', for example
list($tmpDate) = explode(' ', $row['lastupdate'], 2);
list($year, $month, $day) = explode('-', $tmpDate);
$date = "$month.$day.$year";

现在,您得到了所需的07.18.2015

现在,当然,您也可以使用strtotime()将格式化的日期字符串转换为Unix时间戳,然后尝试使用date()将Unix时间戳转换回格式化的字符串(可能也是您试图做的事情),但是您必须知道诸如时区之类的事情,如果您不仔细和充分了解strtotime所做的事情以及MySQL处理时区的方式(例如,假设您也在其他地方使用MySQL ),则可能会出现问题。

票数 2
EN

Stack Overflow用户

发布于 2015-07-18 10:23:17

您可以像这样使用date_format mysql函数

代码语言:javascript
复制
select date_format(now(), '%m-%d-%Y');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31490093

复制
相关文章

相似问题

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