< html >
< head >
< / head >
< body >
< form method = ′ POST ′ >
< ? php
echo ′ < select name = ′ yyyy ′ > ′ ;
for ( $ i = 2005 ; $ i < 2020 ; $ i++ ) {
echo ′ < option > ′ . $ i ;
}
echo ′ < / select > 年 ′ ;
echo ′ < select name = ′ mm ′ > ′ ;
for ( $ i = 1 ; $ i < 13 ; $ i++ ) {
echo ′ < option > ′ . $ i ;
}
echo ′ < / select > 月 ′ ;
echo ′ < select name = ′ dd ′ > ′ ;
for ( $ i = 1 ; $ i < 32 ; $ i++ ) {
echo ′ < option > ′ . $ i ;
}
echo ′ < / select > 日 ′ ;
echo ′
선택된 날짜:′.$_POST[′yyy′].
′ / ′ . $ _ POST [ ′ mm ′ ] . ′ / ′ . $ _ POST [ ′ dd ′ ] ;
?>
< input type = ′ submit ′ value = ′ 送信 ′ >
< form >
< / body >
내일 이후의 날짜를 세팅하는 날짜를 선택하게 하는 리스트에서도, 상품의 배달 희망일과 같이 특정의 날짜, 예를 들면 내일 이후를 선택시키고 싶은 경우가 있습니다.앞에서 말한 단순한 선택 목록을 사용해도 가능하지만 다음 예에서는 좀 더 단순하게 날짜를 선택할 수 있도록 date함수를 사용하여 내일 이후의 날짜를 선택 목록에 셋팅을 하겠습니다.내일 날짜로서 strtotime 함수에게 건네주는 파라미터로 ′+1 day′를 사용할 수 있으며, ′+1′을 늘려감으로써 내일 이후의 날짜를 선택목록에 출력하고 있습니다.tomorrow . php
< html >
< head >
< / head >
< body >
< form method = ′ POST ′ >
< ? php
echo ′오늘 날짜:′.date(′Y/m/d′);
echo ′
< select name = ′ selDate ′ > ′ ;
for ( $ i = 1 ; $ i < 5 ; $ i++ ) {
echo ′ < option > ′ . date ( ′ Y / m / d ′ , strtotime ( ′ + $ i day ′ )) ;
}
echo ′ < / select > ′ ;
echo ′
선택된 날짜:′.$_POST[′selDate′];
?>
< input type = ′ submit ′ value = ′ 送信 ′ >
< form >
< / body >
앞뒤 달에 대한 링크를 표시하는 현재를 기준으로 한 날짜를 선택하게 하는 예는 이 밖에도 몇 가지 있습니다.블로그 등에서는 표시할 기사를 월 단위로 압축할 수 있도록 전달이나 다음 달로의 링크도 볼 수 있습니다.이것도 다음과 같이 date 함수를 사용하여 전달부터 3개월분의 링크를 작성함으로써 실현됩니다.3 months . php
< html >
< head >
< / head >
< body >
< ? php
// 세월을 취득하다
if ( isset ( $ _ GET [ ′ ym ′ ] )) {
$ yyyy = substr ( $ _ GET [ ′ ym ′ ] , 0 , 4 ) ;
$ mm = substr ( $ _ GET [ ′ ym ′ ] , 5 , 2 ) ;
}
else {
$ yyyy = date ( ′ Y ′ ) ;
$ mm = date ( ′ m ′ ) ;
}
//앞뒤 연월 링크 표시 문자열
$ ym = date ( ′ Y/m ′ , mktime ( 0 , 0 , 0 , $ mm , 1 , $ yyyy )) ;
$ ar _ name = array ( ′ < 前 ′ , $ ym , ′ 次 > ′ ) ;
//앞뒤 연월 링크 표시하기
for ( $ i = 0 ; $ i < 3 ; $ i++ ) {
$ ym = date ( ′ Y/m ′ , mktime ( 0 , 0 , 0 , $ mm + $ i-1 , 1 , $ yyyy )) ;
echo ′ . ′ ? ym = $ ym > $ ar _ name [ $ i ] < / a > ′ ;
}
echo ′
선택된 시간:′.$_POST[′sel Time′];
?>
선택된 시간:′.$_POST[′sel Time′];
?>
現在の時間:′.$now;
//選択された時間を表示
echo ′
選択された時間:′.$_POST[′selTime′;
?>
==입력 유형=′value′ 값=′value′ =
<양식>
入力時刻を処理する時刻を選択させるのではなく、4桁で入力してもらう場合もあります。この場合は受け取った時刻のチェックと整形が必要となります。次の例では入力時刻をsubstr関数で分割して範囲をチェックしています。entry.php
머리
몸통
= 양식 방법′POST′ >
//入力時刻を受け取る
$strDate = $_POST[(′txtDate′);
//入力時刻をチェックする
if(strlen($strDate) < 4) {
$strerr = ′4桁で入力してください。′;
} 기타 {
$mm = 하위 시스템($strDate, 0, 2);
$ss = 하위 시스템($strDate, 2, 2);
if ($mm < ′00′ 또는 $mm > ′24′) {
$strErr = ′modic′,
}
if ($ss < ′00′ 또는 $ss > ′60′) {
$strErr = ′modic′,
}
}
//チェック結果を表示する
if(set($strErr) {)
에코 ′
에코 ′
?>
==입력 유형=′텍스트′ 이름=′txtDate′ 값=′=?= $strDate?>′>
==입력 유형=′value′ 값=′value′ =
<양식>
カレンダーを表示するカレンダーのサンプルです。ここまでで説明した前後の年月へのリンクやcheckdate関数による有効月末日付の判別も使っています。日曜日を新たな行で始めるため、「date(′w′, ...)」の戻り値が「0」だったときにtrタグを追加しています。calendar.php
머리
<제목>
몸통
//年月を取得する
if(set ($_GET[′ym])) {′
$yyy = 하위 항목($_GET[′ym′, 0, 4);
$mm = 하위 항목($_GET[′ym′, 5, 2);
}
다른 {
$yyy = 날짜 표시Y′);
$mm = 날짜 1500만′;
}
//前後の年月へのリンク表示文字列
$ym = 날짜(′Y/m′, mktime(0, 0, 0, $mm, 1, $yyy);
$ar_name = 배열 = sarrays=filename, $ym, ′filename′;
//前後の年月へのリンクを表示する
($i = 0, $i = 3, $i++) {
$ym = 날짜(′Y/m′, mktime(0, 0, 0, $mm + $i-1, 1, $yyyy);
에코 ′=ahref=′test.test?ym=$ym′ >$ar_name[/a]′;
}
//曜日を表示する
에코 ′<테이블 테두리=′1′′,
′′를 울립니다.
echo ′日′;
echo ′月′;
echo ′火′;
echo ′水′;
echo ′木′;
echo ′金′;
echo ′土′;
에코 ′/tr;
//日付表示を開始する
′′를 울립니다.
$dd = 1;
//1日の曜日まで移動する
$firstw = date argw′, mktime(0, 0, 0, $mm, 1, $yyy);
($i = 0; $i = $firstw; $i++) {
echo ′′;
}
//日付を表示する
반면(체크 날짜:mm, $ddd, $yyyy) {
if(날짜: w′, mktime(0, 0, 0, $mm, $dd, $yyy) == 0) {
에코 ′;
}
에코 ′[seco]$ddd′
$dd + = 1;
}
echo ′,
?>
まとめ本稿では、処理で使う日付や時間の扱いに関して次のようなポイントを説明しました。date 함수와 strtotime 함수에 의해 표시할 날짜 간격 등을 결정할 수 있다.
텍스트 상자에 입력된 시간은 substr 함수로 처리할 수 있다
checkdate 함수로 유효한 월말일을 조사할 수 있다.
시각 선택 리스트는 초기값을 세팅하면 용도에 따라 편리 참고자료
『PHP에 의한 Web 어플리케이션 슈퍼 샘플』 니시자와 나오키 저, 소프트뱅크 퍼블리싱, 2002년 9월