在 MySQL 查询中添加 30 天间隔
ADD 30 day interval inside MySQL query
我目前有一个可以在活动日历中添加订单的工作代码,但我不想添加订单随附的到期日期(订单发送后 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 天后。我在这里错过了什么?
您可以在 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.
中
我目前有一个可以在活动日历中添加订单的工作代码,但我不想添加订单随附的到期日期(订单发送后 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 天后。我在这里错过了什么?
您可以在 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.
中