我目前有一个在活动日历中添加订单的工作代码,但我不想添加订单附带的到期日期(订单发送后30天)。
//Include db configuration file
include 'connect.php';
$currentDate = date("Y-m-d H:i:s");
//Insert the event data into database
$insert = $conn->query("INSERT INTO events (title,date,created,modified,tht) VALUES ('".$title."','".$date."','".$currentDate."','".$currentDate."','".$date." + INTERVAL 30 DAY')");
if($insert){
echo 'ok';
}else{
echo 'err';
}
目前此代码工作正常,但是发货日期与到期日期相同,而不是我想要的30天。我在这里错过了什么?
答案 0 :(得分:2)
您可以在php中执行此操作:
//Include db configuration file
include 'connect.php';
$currentDate = date("Y-m-d H:i:s");
$endDate = date("Y-m-d H:i:s", strtotime('+30 days', strtotime($date)));
//Insert the event data into database
$insert = $conn->query("INSERT INTO events (title,date,created,modified,tht) VALUES ('".$title."','".$date."','".$currentDate."','".$currentDate."','".$endDate."')");
if($insert){
echo 'ok';
}else{
echo 'err';
}
或直接在mysql中:
//Include db configuration file
include 'connect.php';
$currentDate = date("Y-m-d H:i:s");
//Insert the event data into database
$insert = $conn->query("INSERT INTO events (title,date,created,modified,tht) VALUES ('".$title."','".$date."','".$currentDate."','".$currentDate."',DATE_ADD('".$date."', INTERVAL 30 DAY))");
if($insert){
echo 'ok';
}else{
echo 'err';
}
我会选择第一种方法,因为至少计算日期的逻辑只会在一个地方 - 在php中。否则,如果你在mysql和php服务器上设置的时区有所不同,你可能会遇到从php和mysql返回的日期时间的差异。 所以最好将日期时间逻辑留在php中。