iT邦幫忙

0

用php 將事情寫入日曆

各位大大好:
若要做成像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>
看更多先前的討論...收起先前的討論...
至少要有對話框(HTML+CSS+JS)、ajax(js)、後端(php或其他後端語言)
weiclin iT邦高手 5 級 ‧ 2018-01-22 18:15:05 檢舉
可以參考 bootstrap: https://getbootstrap.com/docs/4.0/components/modal/
小魚 iT邦好手 1 級 ‧ 2018-01-23 12:49:43 檢舉
你先分享一下目前寫到哪邊了吧...
這個問題有點太大了.
mayyola iT邦新手 3 級 ‧ 2018-01-23 13:55:42 檢舉
程式碼太多,我無法貼- -討論好像無法用markdown貼語法>"<?
mayyola iT邦新手 3 級 ‧ 2018-01-23 14:29:28 檢舉
剛看了bootstrap,可是我要怎麼寫可以點某天的日曆就可以跳出寫的視窗
用jquery? 還是在PHP寫bootstrap

尚未有邦友回答

立即登入回答