可能重复:
Print Y-m-d list of business dates between two dates from MySQL using PHP
我是这些PHP编程的新手,所以请耐心等待。
我希望用户能够发布两个日期,一个开始日期和一个结束日期,并从这些日期计算营业日期(不包括星期六和星期日)并将这些日期插入MySQL
例如,如果我有这个表格......
<form action='update.php' method='post'>
<input type='text' name='start_date'>
<input type='text' name='end_date'>
<input type='submit' name='submit'>
</form>
update.php
if(isset($_POST['submit'])) {
$start_date = $_POST['start_date']; //Let's say this is 2012-10-01
$send_date = $_POST['end_date']; //Let's say this is 2012-10-10
}
现在我想遍历日期并创建一个像这样运行的MySQL查询:
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-01');
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-02');
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-03');
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-04');
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-05');
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-08');
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-09');
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-10');
我知道这可能不是一个好的解决方案,但它是我需要它的方式。
如何创建循环?
答案 0 :(得分:1)
$startDate = $start_date;
$endDate = $send_date;
// 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);
}
// start insertion
foreach($result as $value)
{
mysql_query("INSERT INTO tbl_dates (date_value) VALUES '".$value."'");
}
来源:Print Y-m-d list of business dates between two dates from MySQL using PHP
OMG!我刚刚意识到这是一个由你开始的线程。你已经有了答案
答案 1 :(得分:0)
使用date('N', $timestamp)
获取星期几的数字。然后,您可以检查这一天是否符合您的要求。
P.S。 PHP {5.1}中引入了date('N')
答案 2 :(得分:0)
根据您的PHP
标记 - &gt;
<?php
$_POST['start_date'] = '2012-10-01';
$_POST['end_date'] = '2012-10-10';
$start = explode('-',$_POST['start_date']);
$end = explode('-',$_POST['end_date']);
$i = (int)$start[2];
for($i; $i<$end[2]; $i++)
{
$i = sprintf('%02d', $i);
echo "INSERT INTO tbl_dates (date_value) VALUES ('2012-10-$i')";
echo "<br />";
}
?>
<强>输出强>
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-01')
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-02')
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-03')
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-04')
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-05')
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-06')
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-07')
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-08')
INSERT INTO tbl_dates (date_value) VALUES ('2012-10-09')