我试图将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
答案 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);