2015-05-25 7 views
-1

У меня возникла небольшая проблема с отображением даты, полученной из таблицы базы данных sql в правильном формате. В настоящее время он отображается как yyyy-mm-dd, тогда как я бы хотел, чтобы он отображался как dd.mm.yyyy или dd/mm/yyyy.отображение даты в правильном формате php sql

Вот код, который я использую:

<?php 

function select_races($sql) { 

$day = (int) (isset($_GET['day']) ? $_GET['day'] : date('d')); 
$month = (int) (isset($_GET['month']) ? $_GET['month'] : date('m')); 
$year = (int) (isset($_GET['year']) ? $_GET['year'] : date('Y')); 

$date = $day.".".$month.".".$year; 

include 'connect.php'; 
$result = $conn->query($sql); 
if ($result->num_rows > 0) { 
    echo "<div class='races' id='$year' style='display:block'> 
    <table>\n<th colspan='5'>Cycling Season 2015 </th>\n 
      <tr id='information'>\n 
       <th id='date'>Date</th>\n 
       <th id='race'>Race</th>\n 
       <th id='route'>Route</th>\n 
       <th id='info'>Entry</th>\n 
       <th id='rizultz'>Results</th>"; 
} 

while ($row = $result->fetch_assoc()) { 
    if ($row['race_activityID'] == 3) { 
     if ($row['infoID'] != "0"){ 
      echo "<tr class='racedetails' id='cancelled' >\n 
      <td class='dark' id='date'>".$row["date"]."</td>\n 
      <td class='light' id='race'>".$row["title"]."</td>\n 
      <td class='dark' id='route'>".$row["route"]."</td>\n 
      <td class='light' id='info'>".$row["infoID"]."</td>\n 
      <td class='dark' id='rizults'>N/A</td>\n</tr>\n"; 
     } else { 
      echo "<tr class='racedetails' id='cancelled' >\n 
      <td class='dark' id='date'>".$row["date"]."</td>\n 
      <td class='light' id='race'>".$row["title"]."</td>\n 
      <td class='dark' id='route'>".$row["route"]."</td>\n 
      <td class='light' id='info'>N/A</td>\n 
      <td class='dark' id='rizults'>N/A</td>\n</tr>\n"; 
     } 
    } 
     else if ($row['race_activityID'] == 2) { 
      if ($row['infoID'] != "0") { 
      echo "<tr class='racedetails' id='nextrace' >\n 
      <td class='dark' id='date'>".$row["date"]."</td>\n 
      <td class='light' id='race'>".$row["title"]."</td>\n 
      <td class='dark' id='route'>".$row["route"]."</td>\n 
      <td class='light' id='info'><a href='".$row["infoID"]."'>Info</a></td>\n 
      <td class='dark' id='rizults'>N/A</td>\n</tr>\n"; 
      } 
      else { 
      echo "<tr class='racedetails' id='nextrace' >\n 
      <td class='dark' id='date'>".$row["date"]."</td>\n 
      <td class='light' id='race'>".$row["title"]."</td>\n 
      <td class='dark' id='route'>".$row["route"]."</td>\n 
      <td class='light' id='info'>N/A</td>\n 
      <td class='dark' id='rizults'>N/A</td>\n</tr>\n"; 
     } 
     } 
     else { 
      if (($row['infoID'] != "0") && ($row['resultID'] !="0")) { 
      echo "<tr class='racedetails' id='race' >\n 
      <td class='dark' id='date'>".$row["date"]."</td>\n 
      <td class='light' id='race'>".$row["title"]."</td>\n 
      <td class='dark' id='route'>".$row["route"]."</td>\n 
      <td class='light' id='info'><a href='".$row["infoID"]."'>Info</a></td>\n 
      <td class='dark' id='rizults'><a href='".$row["resultID"]."'>Results</a></td>\n</tr>\n"; 
      } 
      else if ($row['infoID'] != "0") { 
      echo "<tr class='racedetails' id='race' >\n 
      <td class='dark' id='date'>".$row["date"]."</td>\n 
      <td class='light' id='race'>".$row["title"]."</td>\n 
      <td class='dark' id='route'>".$row["route"]."</td>\n 
      <td class='light' id='info'><a href='".$row["infoID"]."'>Info</a></td>\n 
      <td class='dark' id='rizults'>N/A</td>\n</tr>\n"; 
      } 
      else if ($row['resultID'] != "0") { 
      echo "<tr class='racedetails' id='race' >\n 
      <td class='dark' id='date'>".$row["date"]."</td>\n 
      <td class='light' id='race'>".$row["title"]."</td>\n 
      <td class='dark' id='route'>".$row["route"]."</td>\n 
      <td class='light' id='info'>N/A</td>\n 
      <td class='dark' id='rizults'><a href='".$row["resultID"]."'>Results</a></td>\n</tr>\n"; 
      } 
      else { 
      echo "<tr class='racedetails' id='race' >\n 
      <td class='dark' id='date'>".$row["date"]."</td>\n 
      <td class='light' id='race'>".$row["title"]."</td>\n 
      <td class='dark' id='route'>".$row["route"]."</td>\n 
      <td class='light' id='info'>N/A</td>\n 
      <td class='dark' id='rizults'>N/A</td>\n</tr>\n"; 
     } 
     } 

} 
echo "</table>\n 
     </div>\n"; 
} 

?> 

И код, я использую для dispay данных:

<?php select_races("SELECT date, title, route, race_activityID, infoID, resultID FROM races"); ?> 

ответ

0

Вы можете даже попробовать на сегодняшний день формат в SQL

<?php select_races("SELECT DATE_FORMAT(date,'%d.%m.%Y') as date, title, route, race_activityID, infoID, resultID FROM races"); ?> 

или формат на дисплее (лучшее решение)

$date = new DateTime($row['date']); 
$formatted_date = $date->format('d.m.Y'); 
if ($row['race_activityID'] == 3) { 
    if ($row['infoID'] != "0"){ 
    echo "<tr class='racedetails' id='cancelled' >\n 
    <td class='dark' id='date'>".$formatted_date."</td>\n 
    <td class='light' id='race'>".$row["title"]."</td>\n 
    <td class='dark' id='route'>".$row["route"]."</td>\n 
    <td class='light' id='info'>".$row["infoID"]."</td>\n 
    <td class='dark' id='rizults'>N/A</td>\n</tr>\n"; 
    } else { 
    echo "<tr class='racedetails' id='cancelled' >\n 
    <td class='dark' id='date'>".$formatted_date."</td>\n 
    <td class='light' id='race'>".$row["title"]."</td>\n 
    <td class='dark' id='route'>".$row["route"]."</td>\n 
    <td class='light' id='info'>N/A</td>\n 
    <td class='dark' id='rizults'>N/A</td>\n</tr>\n"; 
    } 
} 
    else if ($row['race_activityID'] == 2) { 
     if ($row['infoID'] != "0") { 
     echo "<tr class='racedetails' id='nextrace' >\n 
     <td class='dark' id='date'>".$formatted_date."</td>\n 
     <td class='light' id='race'>".$row["title"]."</td>\n 
     <td class='dark' id='route'>".$row["route"]."</td>\n 
     <td class='light' id='info'><a href='".$row["infoID"]."'>Info</a></td>\n 
     <td class='dark' id='rizults'>N/A</td>\n</tr>\n"; 
     } else { 
     echo "<tr class='racedetails' id='nextrace' >\n 
     <td class='dark' id='date'>".$formatted_date."</td>\n 
     <td class='light' id='race'>".$row["title"]."</td>\n 
     <td class='dark' id='route'>".$row["route"]."</td>\n 
     <td class='light' id='info'>N/A</td>\n 
     <td class='dark' id='rizults'>N/A</td>\n</tr>\n"; 
    } 
    } 
    else { 
     if (($row['infoID'] != "0") && ($row['resultID'] !="0")) { 
     echo "<tr class='racedetails' id='race' >\n 
     <td class='dark' id='date'>".$formatted_date."</td>\n 
     <td class='light' id='race'>".$row["title"]."</td>\n 
     <td class='dark' id='route'>".$row["route"]."</td>\n 
     <td class='light' id='info'><a href='".$row["infoID"]."'>Info</a></td>\n 
     <td class='dark' id='rizults'><a href='".$row["resultID"]."'>Results</a></td>\n</tr>\n"; 
     } else if ($row['infoID'] != "0") { 
     echo "<tr class='racedetails' id='race' >\n 
     <td class='dark' id='date'>".$formatted_date."</td>\n 
     <td class='light' id='race'>".$row["title"]."</td>\n 
     <td class='dark' id='route'>".$row["route"]."</td>\n 
     <td class='light' id='info'><a href='".$row["infoID"]."'>Info</a></td>\n 
     <td class='dark' id='rizults'>N/A</td>\n</tr>\n"; 
     } 
     else if ($row['resultID'] != "0") { 
     echo "<tr class='racedetails' id='race' >\n 
     <td class='dark' id='date'>".$formatted_date."</td>\n 
     <td class='light' id='race'>".$row["title"]."</td>\n 
     <td class='dark' id='route'>".$row["route"]."</td>\n 
     <td class='light' id='info'>N/A</td>\n 
     <td class='dark' id='rizults'><a href='".$row["resultID"]."'>Results</a></td>\n</tr>\n"; 
     } 
     else { 
     echo "<tr class='racedetails' id='race' >\n 
     <td class='dark' id='date'>".$formatted_date."</td>\n 
     <td class='light' id='race'>".$row["title"]."</td>\n 
     <td class='dark' id='route'>".$row["route"]."</td>\n 
     <td class='light' id='info'>N/A</td>\n 
     <td class='dark' id='rizults'>N/A</td>\n</tr>\n"; 
    } 
    } 
+0

Оба работают отлично. Используется второй вариант, как кажется лучше. – ChriMarie

1

Использовать интерфейс DateTime для этого -

$date = new DateTime('2015-05-25'); // $row["date"] = '2015-05-25'; 

echo $date->format('d.m.Y'); 
+0

Будет ли это работать, если у меня есть несколько дат? – ChriMarie

+0

несколько дат –

0

Попробуйте сделать это в SQL:

SELECT DATE_FORMAT(date,'%d.%m.%Y') as formatteddate, , title, route, race_activityID, infoID, resultID FROM races; 
0

Попробуйте этот код

date('d.m.Y', strtotime($row["date"]));// it will show date in 24.05.2015 format 
date('d-m-Y', strtotime($row["date"]));// it will show date in 24-05-2015 format 
0

Использование MySQL DATE_FORMAT()

<?php select_races("SELECT DATE_FORMAT(date,'%d.%m.%Y') as `date`, title, route, race_activityID, infoID, resultID FROM races"); ?> 
Смежные вопросы