日付を返すクエリがあり、自分のページでユーザーに表示する前に書式を設定したいと考えています。ただし、形式を使用すると、日付が null のように見えます (1969 年が表示されます)。データを取得するコードは次のとおりです。
$sql = 'SELECT u.username, td.postingText, td.createdOn, td.lastUpdated
FROM threadDetails td, users u
WHERE blogThreadId = ?
AND td.userId = u.userId
order by td.createdOn DESC';
$stmt = $conn->stmt_init();
$stmt->prepare($sql);
$stmt->bind_param('s', $blogThreadId);
$stmt->bind_result($username, $postingText, $createdOn, $lastUpdated);
$stmt->execute();
$stmt->store_result();
$numrows = $stmt->num_rows;
while ($stmt->fetch())
{
$rowofdata=array(
'username' => $username,
'postingText' => $postingText,
'createdOn' => $createdOn,
'lastUpdated' => $lastUpdated,
);
$results[] = $rowofdata;
}
$stmt->close();
次のコードで(別の関数で)印刷すると:
foreach ($threadData as $threadDetailItem)
{
$msg = sprintf ("<tr>%s %s %s %s %s </tr>\n",
"<td>" . $threadDetailItem['threadTitle'] . "</td>",
"<td>" . $threadDetailItem['username'] . "</td>",
"<td>" . $threadDetailItem['createdOn'] . "</td>",
"<td>" . $threadDetailItem['threadCount'] . "</td>",
"<td>" . $threadDetailItem['lastUpdated'] . "</td>");
echo $msg;
}
印刷されます(作成したOnまたはlast Updatedフィールドの場合):
2012-04-15 16:14:55
sprintf 行の一部を置き換えたとき:
"<td>" . $threadDetailItem['createdOn'] . "</td>",
と:
"<td>" . date("F j, Y, g:i a", $threadDetailItem['createdOn']) . "</td>",
私は得る
「1969 年 12 月 31 日、午後 7 時 33 分」というメッセージと、正しく形成されていない数値が検出されたことを示す phplog のメッセージ。正しい日付を正しく表示するにはどうすればよいですか? sprintf を %s から %d に変更しようとしましたが、うまくいきません。
ご提案いただきありがとうございます。