如何在php/mysql中输入每月第三个星期五的事件
我正在尝试下面的代码,使用如何在php/mysql中输入每月第三个星期五的事件,php,mysql,calendar,strtotime,Php,Mysql,Calendar,Strtotime,我正在尝试下面的代码,使用PHP将事件输入MySQL表。当我运行它时,它不会给出任何错误,也不会在MySQL表中插入任何行。我在代码中哪里出错了 当我改变的时候 $date = strtotime("third friday of $month[$j] $year[$i]"); 到 它可以工作一整天,但我只找每个月的第三个星期五 <?php if(isset($_POST['myform'])){ $day = array('1','2','3','4','
PHP
将事件输入MySQL
表。当我运行它时,它不会给出任何错误,也不会在MySQL
表中插入任何行。我在代码中哪里出错了
当我改变的时候
$date = strtotime("third friday of $month[$j] $year[$i]");
到
它可以工作一整天,但我只找每个月的第三个星期五
<?php
if(isset($_POST['myform'])){
$day = array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
$month = array('1','2','3','4','5','6','7','8','9','10','11','12');
$year = array('2011', '2012','2013', '2014', '2015', '2016');
$startday = $_POST['day'];
$eventplace = $_POST['eventplace'];
$eventname = $_POST['eventname'];
$eventtime = $_POST['eventtime'];
for($i=0; $i<count($year); $i++){
for($j=0; $j<count($month); $j++){
for($k=$startday; $k<count($day); $k = $k + 7){
$date = strtotime("third friday of $month[$j] $year[$i]");
$week = date('W', $date) ;
$query = mysql_query(" INSERT INTO caldemo(day, month, year, eventname, eventtime, eventplace, eventweek)
VALUES ('".$k."', '".$month[$j]."', '".$year[$i]."', '".$eventname."', '".$eventtime."', '".$eventplace."', '".$week."' )")or die(mysql_error()) ;
}
}
}
}
?>
<form name="theform" method="post" action="caldemo.php">
<table>
<tr>
<tr>
<td>Event Venue:</td>
<td><input type="text" name="eventplace" size="50"></td>
</tr>
<tr>
<td>Event Name:</td>
<td><input type="text" name="eventname" size="50"></td>
</tr>
<tr>
<td>Event Time:</td>
<td><input type="text" name="eventtime" size="50"></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Send" name="myform">
</form>
试试看
对于($j=0;$j请使用
strtotime("$month[$j] $year[$i] third friday");
其中,$month[$j]
应为月份名称,如december
而$year[$i]
应该像2012
一样
谢谢//showDay('2017年1月,'3日星期五);
展览日(‘2017年1月’、‘星期五’、‘第三’、‘文本’)
函数showDay($month、$year、$day、$count、$type=''){
$list=数组(1=>‘第一’、2=>‘第二’、3=>‘第三’、4=>‘第四’、5=>‘第五’;
$dayname=$list[$count];
如果($type=='text')$dayname=$count;
返回日期('d',strottime($month.'.$year.'.$dayname.'.$day));
}
@MC_delta_T感谢您指出,strotime(“2012年1月第一个星期日”)
会给出错误的结果。
for($j=0; $j<count($month); $j++){
$date = strtotime("+2 week friday $month[$j] $year[$i]");
$week = date('W', $date) ;
$k = date('d', $date) ;
$query = mysql_query(" INSERT INTO caldemo
(day, month, year, eventname, eventtime, eventplace, eventweek)
VALUES
('".$k."', '".$month[$j]."', '".$year[$i]."', '".$eventname."',
'".$eventtime."', '".$eventplace."', '".$week."' )")
or die(mysql_error()) ;
}
strtotime("$month[$j] $year[$i] third friday");
function showDay($month, $year, $day, $count, $type=''){
$list = array(1=>'first',2=>'second',3=>'third',4=>'fourth',5=>'fifth');
$dayname = $list[$count];
if($type=='text') $dayname = $count;
return date('d', strtotime($month . ' ' . $year . ' ' . $dayname .' '.$day));
}