我有一个数据库表,当有人注册我的服务时,它处理时间戳。时间戳工作正常,并一直在数据库中插入,但我只需要日期、月和年格式。请看一下我的代码:
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>";我相信这些台词
$x = explode('-',$row['lastupdate'],0);
echo "<tr><td>".date("m.d.y",$x)."</td>有问题了。如何将时间戳输入输出到do格式。
发布于 2015-07-18 10:29:54
就像您知道的,日期需要一个整数(作为来自时代的Unix时间戳)作为第二个参数,它是可选的,默认情况下是当前时间戳。
时间戳 可选时间戳参数是一个整数Unix时间戳,如果没有给出时间戳,该时间戳默认为当前本地时间。换句话说,它默认为time()的值。
第二,$x = explode('-',$row['lastupdate'],0)基本上和说$x = array($row['lastupdate'])完全一样,如果你把$x交给date(),那就没有什么意义了。
你可能想做更多的事情。
list($year, $month, $day) = explode('-', $row['lastupdate']);
$date = "$month.$day.$year";它通过连字符拆分存储在MySQL中的格式化日期字符串,并按所需的顺序重新组装部件。如果格式化的日期字符串包含的不仅仅是日期,您也可以先按空格拆分字符串,然后再用连字符分割字符串,就像这样.
// 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 ),则可能会出现问题。
发布于 2015-07-18 10:23:17
您可以像这样使用date_format mysql函数
select date_format(now(), '%m-%d-%Y');https://stackoverflow.com/questions/31490093
复制相似问题