将日期添加到日期并插入数据库

时间:2014-05-29 03:29:03

标签: php mysql

我试图将X月添加到从我的数据库中删除的日期

$sql_batch = "SELECT * FROM mgm_subscription WHERE status = '1'"
$query_batch = mysql_query($sql_batch);
$row_batch = mysql_fetch_array($query_batch);

$addMonth = 3;
$startDate = $row_batch['start_month'];
$endDate = strtotime('+'.$addMonth.' month', $startMonth);  // add number of days from form
$endDate = date('m/d/y H:i:s', $endDate );  

$sql_date = "INSERT INTO user_subscription (user_id, start_month, end_month, sub_status) VALUES ('".$usercode2."','".$startDate."','".$endDate."', '')";
$query_date = mysql_query($sql_date);

NULL已插入end_month。 start_month和end_month是mysql中的DATE类型

我该如何解决这个问题? TQ

3 个答案:

答案 0 :(得分:2)

如果我理解了您的问题,那么$endDate应该是

$endDate = date('Y-m-d', strtotime($startDate.' +'.$addMonth.' months'));  

所以这等同于:

$endDate = $startDate + 3 months /* in Y-m-d format */

编辑:刚看到您的列数据类型为Date。这意味着您无法在日期中存储时间戳。它必须是Y-m-d格式,因为它是支持的有效mysql格式。

答案 1 :(得分:0)

你插入$ endMonth一个值(从表单开始的天数),然后你尝试替换它($ endMonth)然后你回调你替换的变量..

  

$ endMonth = strtotime('+'。$ addMonth。'month',$ startMonth); //从表单中添加天数       $ endMonth = date('m / d / y H:i:s',$ endMonth);

它将返回空值。我的建议是,尝试将其他变量用于防止重复值或缺少数据

答案 2 :(得分:0)

你只提到加X个月。也许我误解了你的问题,但如果你所关心的只是月份,我会做以下事情:

if ($startMonth === 'January') {
    $monthNumber = 1;
} else if ($startMonth === 'February') {
    $monthNumber = 2;
} //Up to November then finish with {
else {
    $monthNumber = 12;//December
}

$newMonthNumber = $monthNumber + $addMonth;

if ($newMonthNumber % 12 == 1) {
    $endMonth = 'January';
} else if ($newMonthNumber % 12 == 1) {
    $endMonth = 'February';
} //Up to November then finish with {
  else {
    $endMonth = 'December';
}

$sql_date = "INSERT INTO user_subscription (user_id, start_month, end_month, sub_status) VALUES ('".$usercode2."','".$startMonth."','".$endMonth."', '')";
$query_date = mysql_query($sql_date);