我正在试图立即用PHP和MySQL插入工作时间(仅限工作日)。
来自:01.02.2013 08:30
致:28.02.2013 17:30
然后它应该插入每个工作日,直到2013年2月28日
01.02.2013 08:30 -01.02.2013 17:30
02.02.2013 08:30 -02.02.2013 17:30
03.02.2013 08:30 -03.02.2013 17:30
...
您能否提供一些提示从哪里开始?
我只使用以下代码插入日期..
$startDate = $rsnew["starttime"];
$endDate = $rsnew["endtime"];
// Convert to UNIX timestamps
$currentTime = strtotime($startDate);
$endTime = strtotime($endDate);
// Loop until we reach the last day
$result = array();
while ($currentTime <= $endTime) {
if (date('N', $currentTime) < 6) {
$result[] = date('Y-m-d', $currentTime);
}
$currentTime = strtotime('+1 day', $currentTime);
echo "Hallo" .$currentTime;
}
// start insertion
foreach($result as $value)
{
$MyResult = ew_Execute("INSERT INTO dates (date) VALUES ('".$value."')");
echo "Hallo" .$value;
}
答案 0 :(得分:0)
你可能不再需要这个了,但这是一个非常有效的简单方法:
$start = new DateTime('2013-02-01');
$finish = (new DateTime('2013-02-28'))->add(new DateInterval('P1D'));
$interval = new DateInterval('P1D');
$period = new DatePeriod($start, $interval, $finish);
$dates = array();
foreach ($period as $dt) {
$dates[] = $dt->format('Y-m-d');
}
$MyResult = ew_Execute("INSERT INTO dates (date) VALUES ('" . implode("'),('", $dates) . "')");
以下是这样做:
implode()
创建一个查询而不是[ num days ]查询,这样可以更快地执行。