【问题标题】:Php/MySQL Adding time from a form to current date then inserting into DBPhp/MySQL 将时间从表单添加到当前日期,然后插入数据库
【发布时间】:2014-04-04 20:59:47
【问题描述】:

我一直在到处寻找有关如何将 Php 网站上的表单中指定的时间量(月)添加到当前日期,然后将此日期添加到 MySQL 数据库日期中的信息(例如 2014-03 -03) 字段(如果在这里甚至可以使用日期)。

你能告诉我我应该用什么来获取没有时间的当前日期,给它添加一个自定义的月数(我假设使用 strtotime,但它使用像 +1 天这样的语法,其中我有一个来自表单的变量),然后将其输入到数据库字段类型“日期”中?如果需要,我可以将 DB 字段类型更改为 Datetime 或 Timestamp。

【问题讨论】:

    标签: php mysql date add strtotime


    【解决方案1】:

    您可以为此使用 mktime:

    <?php
    
    print date("Y-m-d", mktime(0, 0, 0, date("m") + 6, date("d"), date("Y"))); 
    

    在这里,我将日期加了 6 个月。

    【讨论】:

    • 我试过这样使用:"$ExpDate=date("Ymd", mktime(0, 0, 0, date("m") + 6, date("d"), date("Y"))); 但它仍然给我数据库中的 0000。这可以与 mysql DB 的“日期”字段类型一起使用吗?我使用的插入命令:$sql = "INSERT INTO orders (user, plan_id,adress,email,phone,expires) VALUES ('$user','$id','$adress','$mail','$phone','$ExpDate')";
    • 什么意思?上面的代码打印出2014-09-03
    • 您的意思是您在表中使用的字段类型与您想要使用的字段类型不同?
    • 没关系,我知道出了什么问题,现在添加日期就可以了!唯一需要解决的是..如何从提交表单中添加一个数字作为添加 mktime 的月数?而不是不断添加+6?像 "$ExpDate=date("Ymd", mktime(0, 0, 0, date("m") + $_POST["expires"], date("d"), date("Y"))) ; "?
    • 是的,完全正确。当然,您需要在使用之前确保并验证$_POST['xxxxxx']。但是,是的,通常这会满足您的需求。
    【解决方案2】:

    按照这个逻辑,在 mysql 中保存你的日期应该很容易。 =) strtotime 是一个很棒的功能,因为它总是很容易一目了然地理解发生了什么。

    $days = $_POST['days'];  // data from your form
    
    $currentTime = strtotime('today');  // you can also use time() or put in your own date
    $nextDay = strtotime('+'.$days.' days', $currentTime);  // add number of days from form
    $nextDay = date('Y-m-d H:i:s', $currentTime);  // format the time from unix timestamp into mysql format
    

    【讨论】:

    • 感谢您的回答,但问题是我需要将 FROM A FORM 的天数/月数添加到当前日期,而不是像 1 天这样的预设数量。
    • 好的..所以只需从您的表单中获取天数或其他内容并将其插入。看看我更新的答案..
    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 2014-09-24
    • 2013-04-27
    • 2011-09-27
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 2019-04-19
    相关资源
    最近更新 更多