如何为PHP日历值设置默认视图
我有一个事件日历,根据用户选择的4个下拉菜单选项,我可以从数据库中打印某些信息,这些信息是如何为PHP日历值设置默认视图,php,mysql,date,calendar,Php,Mysql,Date,Calendar,我有一个事件日历,根据用户选择的4个下拉菜单选项,我可以从数据库中打印某些信息,这些信息是周月年和订单,当提供所有选项时,应用程序显示良好。现在的问题是,我希望将事件日历的默认视图设置为当前时间的周月和年,这样用户就不必选择和下拉菜单来查看 当我实现下面代码的一部分时,事件日历上没有发生任何事情 PHP function calendar() { if(!isset($_POST['submit'])){ $m = date('M'); $day = date('j');
周月年和订单,当提供所有选项时,应用程序显示良好。现在的问题是,我希望将事件日历的默认视图设置为当前时间的周
月
和年
,这样用户就不必选择和下拉菜单来查看
当我实现下面代码的一部分时,事件日历上没有发生任何事情
PHP
function calendar()
{
if(!isset($_POST['submit'])){
$m = date('M');
$day = date('j');
$Y = date('Y');
if ($day >= 29) {
$j = 5;
}elseif($day >= 22 AND $day < 28) {
$j = 4;
}elseif($day >= 15 AND $day < 22) {
$j = 3;
}elseif($day >=8 AND $day < 15) {
$j = 2;
}else{
$j = 1;
}
}
if(isset($_POST['submit'])){
if ($_POST['submit'] == ""){
echo "No Event for Today" ;
}
$j = mysql_real_escape_string($_POST['week']);
$m = mysql_real_escape_string($_POST['month']);
$Y = mysql_real_escape_string($_POST['year']);
$o = mysql_real_escape_string($_POST['order']);
$date =" ".$j.", ".$Y." ";
$query1 = " SELECT *
FROM newcaldemo
WHERE eventweek = '".$j."'
AND month = '".$m."'
AND year = '".$Y."'
ORDER by $o ASC" ;
$run1 = mysql_query($query1);
$norows = mysql_affected_rows();
if ($norows < 1){
echo "No Event(s) for Week $j, $Y" ;
} else {
echo "Event(s) for Week $j, $m $Y <br></div> ";
while($row1 = mysql_fetch_array($run1)) { ?>
<?php echo $row1['month']." " .$row1['day'] ; ?><br>
Name : <?php echo $row1['eventname'] ; ?><br>
Time : <?php echo $row1['eventtime'] ; ?><br>
Venue : <?php echo $row1['eventplace'] ; ?><br>
<?php }
}
}
?>
函数日历()
{
如果(!isset($_POST['submit'])){
$m=日期('m');
$day=日期('j');
$Y=日期('Y');
如果($day>=29){
$j=5;
}其他($day>=22和$day<28){
$j=4;
}其他($day>=15和$day<22){
$j=3;
}其他($day>=8和$day<15){
$j=2;
}否则{
$j=1;
}
}
如果(isset($_POST['submit']){
如果($_POST['submit']==“”){
回应“今天没有事件”;
}
$j=mysql\u real\u escape\u字符串($\u POST['week']);
$m=mysql\u real\u escape\u字符串($\u POST['month']);
$Y=mysql\u real\u escape\u字符串($\u POST['year']);
$o=mysql\u real\u escape\u字符串($\u POST['order']);
$date=“”.$j.”,“$Y.”;
$query1=“选择*
来自newcaldemo
其中eventweek=“$j.”
月份=“$m.”
年份=“$Y.”
由$o ASC订购”;
$run1=mysql\u查询($query1);
$norows=mysql_受影响的_行();
如果($norows<1){
回显“第$j,$Y周无事件”;
}否则{
回显“第j周的事件,$m$Y
”;
而($row1=mysql\u fetch\u数组($run1)){?>
名称:
时间:
地点:
我在大学时为我的论文做了类似的事情-获得所需d/m/y的部分(以及围绕它的部分,以防您使用“下个月”和“上个月”标签)如下所示:
//set months
if(!empty($_GET['m'])){
$thisMonth = $_GET['m'];
$lastMonth = $thisMonth - 1;
$nextMonth = $thisMonth + 1;
}else{
$lastMonth = date("n")-1;
$thisMonth = date("n");
$nextMonth = date("n")+1;
}
//set years
if(!empty($_GET['y'])){
$thisYear = $_GET['y'];
}else{
$thisYear = date("Y");
}
// Set days. mktime format: mktime(hr, min, sec, mth, day, yr)
$today = date("j");
$numDays = date ("t", mktime(0, 0, 0, $thisMonth, 1, $thisYear)); // Number of days in current month
$startDay = date ("w", mktime(0, 0, 0, $thisMonth, 1, $thisYear)); // Day the current month starts on
我还可以向您展示我将日历打印为表格的方式,表格的显示取决于月份的起始日期和天数(未使用的单元格显示为灰色等)
不用说,我还没有解释事件检查,因为这是您问题的多余部分:)