首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从MySQL表行获取日期和时间

问如何从MySQL表行获取日期和时间
EN

Stack Overflow用户
提问于 2011-03-03 08:19:48
回答 3查看 4.4K关注 0票数 0

我发现一个旧的博客脚本(非常旧)在我的PC上到处乱转。我有麻烦从我的数据库中获取日期和时间显示在PHP中。谁能帮帮我。

这是我的MySQL DB设置。

代码语言:javascript
复制
CREATE TABLE blog_posts (
  id int(11) NOT NULL auto_increment,
  title varchar(30) NOT NULL default '',
  news text NOT NULL,
  poster varchar(15) NOT NULL default '',
  date timestamp(14) NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;

这是我用来发送帖子的东西:

代码语言:javascript
复制
<?php

include "db.php";   
    $title=$_POST['title'];
    $news=$_POST['news'];
    $poster=$_POST['poster'];

    $query="INSERT INTO $blogposts (title, news, poster) VALUES ('$title', '$news', '$poster')";
    $result=mysql_query($query) or die (mysql_error());

    mysql_close();

    header("Location: post.php");
?>

最后,这是我用来在前端调用日期的代码:

代码语言:javascript
复制
<?php echo "posted on: - ".$day.".".$month.".".$year." at ".$hour.":".$min; ?>

我不是专家(很明显),但是这个日期对我来说并不合适。谁有办法让它工作,甚至让它变得更好??

编辑::

代码语言:javascript
复制
<?php

    include "db.php";

//query
    $query="SELECT * FROM ".$blogposts." ORDER BY id DESC LIMIT 0,$limit ";
    $result=mysql_query($query) or die (mysql_error());

//loop
    while($row=mysql_fetch_array($result))
    {
$querycomment = "SELECT ID FROM ".$newscomments." WHERE newsid=".$row['id'];
$resultcomment=mysql_query($querycomment) or die (mysql_error());
$num_rows = mysql_num_rows($resultcomment);

    ereg("^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})",$row['date'],$res);
    $year=$res[1];
    $month=$res[2];
    $day=$res[3];
    $hour=$res[4];
    $min=$res[5];
    $sec=$res[6];


?>

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-03 08:45:14

由于date列具有TIMESTAMP数据类型,并且获得了not null约束,因此如果在插入时没有数据投递到date列上,它将具有默认的current_timestamp值。see mysql timestamp ref manual。

因此,为了达到您所要求的结果,您可以尝试使用如下代码来获取数据:

代码语言:javascript
复制
$sql = "select id, title, news, poster, DATE_FORMAT(date,'%d.%m.%Y at %k:%i') as posteddate from blog_posts";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
    echo $row["title"]."<br/>";
    echo "By : " . $row["poster"]."<br/>";
    echo "posted on: -  " . $row["posteddate"]."<br/>"; //"posted on: - 03.03.2011 at 7:35"
}
票数 2
EN

Stack Overflow用户

发布于 2011-03-03 08:25:27

在insert命令中,您似乎没有向日期字段添加任何值。您可以使用now()添加当前时间戳,以便在插入过程中添加当前时间。要提取时间,您可以(a)从表中读取日期字段并使用PHP格式化时间,或者(b)使用mysql date and time functions在select命令中获取时间戳的格式化字段

您还需要一些代码来读取PHP中的值,以便读取字段的值。你的问题中似乎遗漏了这一点。

票数 2
EN

Stack Overflow用户

发布于 2011-03-03 08:25:55

你肯定没有定义任何你想要使用的日期变量吧?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5175169

复制
相关文章

相似问题

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