各位大大好:
若要做成像google日曆,點一下日期欄位就有視窗跑出來可以填入資料並按確定寫入,這是否用PHP就可以完成,還是說他需要其他的方法,這種方法有哪邊可以google到嗎?
現在沒有頭緒要如何跑視窗出來跟寫入,謝謝!
另外一種方法可能是再開創一個表單,表單內容寫入資料庫後,再將資料庫的資料呈現到日曆上
忘記補充:日曆大約寫完成了,但是現在再想以上問題要如何完成
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<style type="text/css">
.table{
margin-left:auto;
margin-right:auto;
}
.text{
text-align:center;
font-size:18px;
font-family:Microsoft JhengHei;
}
</style>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
</head>
<body>
<?php
function gettheMonth($date)
{
$firstday = date('Y-m-01', strtotime($date));//取得該日期月份的第一天,PHP內建date時間函數
$lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day"));//取得該日期月份的最後一天,加一個月減一天
$month=date('m', strtotime($date));
$year=date('Y', strtotime($date));
return array($firstday,$lastday,$month,$year);
}
$YM= filter_input(INPUT_GET,'date')?:date("Y-m");//過濾變量
//$YM = (isset($_GET['date'])?$_GET['date']:date("Y-m"));//尋找判斷變數是不是有存在,如果有就回傳1 if else的簡寫
$day=gettheMonth($YM);
echo '<b>'.$YM.'</b>';
echo '<br/>';
echo '這個月有幾 '.$dayCount = date("t",strtotime($day[0])).' 天'; //t直接輸出當月天數;
echo '<br/>';
echo '這個月的第一天是禮拜 '.$weekday = date('w', strtotime($day[0])); //w數字型的星期幾 D英文型的星期幾
echo '<br/>';
echo '這個月的最後一天是禮拜 '.date('w', strtotime($day[1]));
echo '<br/>';
echo $d_first=date("j",strtotime($day[0])).' - '.$d_last=date("j",strtotime($day[1])); //格式化為以天統計的數字日,不補零
$d_last=$dayCount+$weekday-1;//天數+第一個禮拜星期幾減1
echo '<br/>';
echo 'last:'.$d_last."<br>";
// echo date('w',strtotime(date("Y-06-1")))."<br>";
?>
<div class="table" style="width:859px;background-color:#333;">
<?php
$colorOfOutRange='#F5F5F5';
$colorOfWeekday='#F5DEB3';
$colorOfweekend='#FFC0CB';
$colorOfToday='#FFAA33';
$yue=$day[2];
$Y=$day[3];
$day=1;
$nowDay=strtotime("now-1day");
$nowDate=date("Y-m-d");
for($x=0;$x<=41;$x++){
if($x<$weekday||$x>$d_last){ //這個月的第一天是禮拜幾 最後一天第幾天
echo '<div style="background-color:'.$colorOfOutRange.';width:120.6px;height:160px;float:left;border:#FFFFFF 1px solid;"></div>';
}
else{
$dayOfweek=($x%7);
$work=array("2018-03-31","2018-12-22");//彈性上班日
$holiday=array($Y."-01-1",$Y."-02-28",$Y."-4",$Y."-05-1",$Y."-10-10");//國立的國定假日
$lunarCalendar=array("2018-02-15","2018-02-16","2018-02-19","2018-02-20","2018-04-5","2018-06-18","2018-09-24");//農曆的國定假日
$bridgeHoliday=array("2018-04-6","2018-12-31",);
$toDay=array($Y."-".$yue."-".$day);
$color =!in_array($nowDate,$toDay)?(!in_array($Y."-".$yue."-".$day,$work)&&in_array($dayOfweek,[0,6])||in_array($Y."-".$yue."-".$day,$holiday)||in_array($Y."-".$yue."-".$day,$lunarCalendar)||in_array($Y."-".$yue."-".$day,$bridgeHoliday)?$colorOfweekend:$colorOfWeekday):$colorOfToday; //是粉紅色
$dark=strtotime($Y."-".$yue."-".$day)< $nowDay? '0.5':'1';
echo'<div style="background-color:'.$color.';opacity:'.$dark.';width:120.6px;height:160px;float:left;border:#FFFFFF 1px solid;">'."[$day]".'</div>';
++$day;
}
}
?>
</div>