我一直在寻找是否有任何答案,但我还没有找到回答我的问题。在php方面,我是一个菜鸟,所以请保持友善。我正在尝试制作一个 CMS,到目前为止我所拥有的只是您可以发布帖子,但是当我尝试存储帖子的时间时,它只会输出 1969 年 12 月 31 日。我假设我没有正确存储该值,因为如果它显示该日期,则意味着计时器为 0。
这是我到目前为止所拥有的。
<?php
require('config.php');
if (isset($_POST['name']) AND isset($_POST['mail']) AND isset($_POST['avatar']) AND isset($_POST['title']) AND isset($_POST['message']))
{
$name = addslashes($_POST['name']);
$mail = addslashes($_POST['mail']);
$avatar = addslashes($_POST['avatar']);
$title = addslashes($_POST['title']);
$message = addslashes($_POST['message']);
// We try to find out if we were going to modify the news ...
if ($_POST['id_news'] == 0)
{
// No modifs ?? lets put some data on the tables :p
mysql_query("INSERT INTO news VALUES('', '" . $name . "', '" . $title . "', '" . $message . "', '" . time() . "', '" . $mail . "', '" . $avatar . "')");
}
else
{
// If we want to modify, let's just update all the data
mysql_query("UPDATE news SET name='" . $name . "', title='" . $title . "', message='" . $message . "', mail='" . $mail . "', avatar='" . $avatar . "' WHERE id=" . $_POST['id_news']);
}
}
/*
Verify if ever we want to delete the news
*/
if (isset($_GET['delete_news']))
{
// let's delete data Very Happy
mysql_query('DELETE FROM news WHERE id=' . $_GET['delete_news']);
}
?>
<table width="487">
<tr>
<th>Modify</th>
<th>Delete</th>
<th>Title</th>
<th>Date</th>
<th>Author</th>
</tr>
<?php
$res = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($data = mysql_fetch_array($res))
{
?>
<tr>
<td align="center"><?php echo '<a href="write_news.php?modify_news=' . $data['id'] . '">'; ?>Modify</a></td>
<td align="center"><?php echo '<a href="list_news.php?delete_news=' . $data['id'] . '">'; ?>Delete</a></td>
<td align="center"><?php echo stripslashes($data['title']); ?></td>
<td align="center"><?php echo date('d F Y - h:i:s a', $data['time']); ?></td>
<td align="center"><?php echo stripslashes($data['name']); ?></td>
</tr>
<?php
}
?>
提前谢谢你。
您可以执行 strtotime 函数,也可以执行分解并执行分解元素的 mktime。
时间可能更容易
date('d F Y - h:i:s a', strtotime($date['time]));
正如在回复中提到的,您将希望在打印变量时对其进行 Santization 处理,并且可能会保护它进入(不仅仅是添加斜杠)
http://www.php.net/manual/en/function.strtotime.php
http://www.php.net/manual/en/function.date.php
这是转义字符串的链接,但您可能需要考虑最佳替代方案,那就是参数化插入
http://www.php.net/manual/en/mysqli.real-escape-string.php
我想你在数据类型datetime
或timestamp
中有字段time
,然后使用:
mysql_query("INSERT INTO news VALUES('', '" . $name . "', '" . $title . "', '" . $message . "', '" . date('Y-m-d H:i:s') . "', '" . $mail . "', '" . $avatar . "')");
或立即使用 mysql 函数
mysql_query("INSERT INTO news VALUES('', '" . $name . "', '" . $title . "', '" . $message . "', NOW(), '" . $mail . "', '" . $avatar . "')");
当您从数据库中读取值时,可以将其转换为整数,并在使用date
函数后。例如:
$tableColumn = '2013-10-10 15:10:12';
echo date('Y-m-d H:i:s', strtotime($tableColumn));
请注意,TIMESTAMP
数据类型从 1970 年 1 月 1 日起通过 UTC 存储为 4 字节整数的秒数。MySQL将时间戳值从当前时区转换为UTC以进行存储,并从UTC转换回当前时区以进行检索。
但是与数据类型的交互TIMESTAMP
与DATETIME
相同,需要以YYYY-MM-DD HH:II:SS
格式存储数据。
您可以在 mysql 中使用 INT 数据类型来存储时间戳。对于插入,您可以使用带有 php 函数的变体time()
$sql = "insert into test values(" . time() . ")";
或使用 SQL 函数 UNIX_TIMESTAMP()。
$sql = "insert into test values(UNIX_TIMESTAMP())";
要从数据库中显示此列中的值,只需使用 php 函数date($formatOfDate, $databaseValue)