【问题标题】:Get Day, Month, Year separately from mysql in mktime format以mktime格式从mysql中分别获取日、月、年
【发布时间】:2012-08-23 20:18:41
【问题描述】:

我有一个用于将日期添加到数据库的 mktime 代码。此代码以 mktime 格式分别显示当前日期。

<?php function drawDateTimePicker() { ?>
<select name="day">
    <?php for($x=1;$x<=31;$x++) { ?>
        <option value="<?= $x ?>"<?= (date("j") == $x ? ' selected="selected"' : '') ?>><?= $x ?></option>  
    <?php } ?>
</select>
<select name="month">
    <?php for($x=1;$x<=12;$x++) { ?>
        <option value="<?= $x ?>"<?= (date("n") == $x ? ' selected="selected"' : '') ?>><?= date('m', mktime(0,0,0,$x)) ?></option> 
    <?php } ?>
</select>
<select name="year">
    <?php for($x=2009;$x<=2015;$x++) { ?>
        <option value="<?= $x ?>"<?= (date("Y") == $x ? ' selected="selected"' : '') ?>><?= $x ?></option>  
    <?php } ?>      
</select> / 
<select name="hour">
    <?php for($x=1;$x<=12;$x++) { ?>
        <option value="<?= $x ?>"<?= (date("H") == $x ? ' selected="selected"' : '') ?>><?= $x ?></option>  
    <?php } ?>
</select>   

此代码将日期插入数据库字段 $row['birthdate']

我想在修改页面时显示日期表格 $row['birthdate'] 数据。 在这段代码中每次显示当前日期,不匹配数据库中的数据

如何从数据库中检索数据并将其显示在修改页面中?

谢谢

解决方法

<?php function drawDateTimePicker($mktimedata) { ?>

<select name="day">

    <?php for($x=1;$x<=31;$x++) { ?>

        <option value="<?= $x ?>"<?= (date("j",$mktimedata) == $x ? ' selected="selected"' : '') ?>><?= $x ?></option>    

    <?php } ?>

</select>

<select name="month">

    <?php for($x=1;$x<=12;$x++) { ?>

        <option value="<?= $x ?>"<?= (date("n",$mktimedata) == $x ? ' selected="selected"' : '') ?>><?= date('m', mktime(0,0,0,$x)) ?></option>    

    <?php } ?>

</select>

<select name="year">

    <?php for($x=2009;$x<=2015;$x++) { ?>

        <option value="<?= $x ?>"<?= (date("Y",$mktimedata) == $x ? ' selected="selected"' : '') ?>><?= $x ?></option>    

    <?php } ?>        

</select>

drawDateTimePicker($date_in_database);

【问题讨论】:

  • 选择日期 .. 来自 .... ?不太确定你在问什么,以及以上内容与从数据库中检索有什么关系
  • 例如,我的出生日期在数据库中以 mktime 格式输入为 943912800。我将使用此功能输入(或编辑)出生日期。但是当我调用该函数时,它会给出今天的日期。我想显示数据库中的生日。查看选定的字段。我想被选中的是我数据库中的数据
  • @Seyhan 为什么要以时间格式存储出生日期?为了与以前的数据兼容?

标签: php mysql date mktime


【解决方案1】:

date([format]) 为您提供实际的日期。如果你想要一个未来或过去的日期,你可以用 date([format], "time() of past Date");例如:

date("Y", mktime(0, 0, 0, 12, 32, 1997));

要从数据库中拆分日期,您可以使用以下内容:

$mydate = explode("-", $row["birthdate"]);
date("Y", mktime(0, 0, 0, $mydate[1], $mydate[2], $mydate[0]);

更多示例:http://de2.php.net/manual/de/function.mktime.php

或者你用 MySQL 拆分它:

select YEAR(birthday) as y, MONTH(birthday) as m, DAY(birthday) as d FROM table

并使用 $row["y"]、$row["m"] 和 $row["d"]

<select name="day">
    <?php for($x=1;$x<=31;$x++) { ?>
        <option value="<?= $x ?>"<?= (date("j", mktime(0, 0, 0, $mydate[1], $mydate[2], $mydate[0]) == $x) ? ' selected="selected"' : '') ?>><?= $x ?></option>  
    <?php } ?>
</select>

<select name="day">
    <?php for($x=1;$x<=31;$x++) { ?>
        <option value="<?= $x ?>"<?= ($row["d"] == $x) ? ' selected="selected"' : '') ?>><?= $x ?></option>  
    <?php } ?>
</select>

【讨论】:

  • 嗨,我尝试了选项一,但它给出了错误消息“警告:mktime() 期望参数 6 很长,给定字符串”并且生日字段中的数据是 943912800 用于日期信息
  • 您输入的日期怎么样?使用“Y-m-d”格式,我的示例可以在我的测试服务器上运行。
  • 我正在查询我的日期,例如 结束它给了我一个完整的约会。
  • 那么您已经将整数值(以秒为单位)保存到数据库中了吗?那么问题出在哪里?
  • 编辑例如:date("n") == $x to date("n", $mt) == $x
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-24
  • 2020-02-07
  • 1970-01-01
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 2015-04-29
相关资源
最近更新 更多