是否有在 php 中运行的查询可以让您在两个日期之间插入所有日期?
例如,输入 03/20/2012 和 03/20/2013 并使用这两个日期之间的所有日期填充 mysql?
我正在为一家航空公司制作票务系统,他们每天有 13 个航类从 20 多个地点起飞,手动插入它们变得很乏味。
我想插入日期以及每一天的值
例如。
FROM TO Date_From Date_To
Dar Es Salaam Zanzibar 03/20/2012 03/21/2012
Dar Es Salaam Zanzibar 03/21/2012 03/22/2012
注意
我不想生成这个列表(我研究过的问题只回答了如何生成一个列表)我想填充一个 MySQL 数据库
任何帮助将不胜感激
最佳答案
您可以使用此函数生成日期数组
function dateRange( $first, $last, $step = '+1 day', $format = 'd/m/Y' ) {
$dates = array();
$current = strtotime( $first );
$last = strtotime( $last );
while( $current <= $last ) {
$dates[] = date( $format, $current );
$current = strtotime( $step, $current );
}
return $dates;
}
$dateRange = dateRange("03/20/2012", "03/20/2013);
然后遍历数组以插入数据
$stmt = $dbh->prepare("INSERT INTO table (from, to, date_from, date_to) VALUES (:from, :to, :datefrom, :dateto)");
$stmt->bindParam(':from', "Dar Es Salaam");
$stmt->bindParam(':to', "zanzibar");
$stmt->bindParam(':from', $datefrom);
$stmt->bindParam(':to', $dateto);
for ($i = 0; $i < count($dateRange); $i++){
$datefrom = strototime($dateRange[$i]);
$dateto = strototime($dateRange[$i+1]);
$stmt->execute();
}
关于php - 输入开始日期和结束日期并将其间的日期插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9921688/