ポルトフォイユ・ジュリエット, ポルトフォイユ・ジュリエット モノグラム|ルイ・ヴィトン 公式サイト , 新品未使用 LOUIS VUITTON ルイヴィトン モノグラム ポルトフォイユ , 61BuxOaUMVL._SL1024_.jpg, 91miDttjmDL._SL1500_.jpg, 6008285-024.jpg
ルイ ヴィトン ポルトフォイユ イリス XS マグノリア 財布

シャネルCHANEL❣️キャビアスキン✨ココマーク❣️三つ折コンパクトウォレット
ご覧いただきありがとうございます。扱いやすいミディアムサイズのジュリエット。大きく広げられる小銭入れもありコンパクトで可愛い財布です。全体的に使用感はほぼない良好なコンディション。金具も光沢あり綺麗で角の擦れや反りもほとんどありません。
カテゴリー:レディース>>>小物>>>折り財布
商品の状態:未使用に近い
ブランド:ルイ ヴィトン
配送料の負担:送料込み(出品者負担)
配送の方法:らくらくメルカリ便
発送元の地域:奈良県
発送までの日数:2~3日で発送

ポルトフォイユ・ジュリエット
LOUIS VUITTON コインケース ジッピー ジャングル ヴィトン
ポルトフォイユ・ジュリエット モノグラム|ルイ・ヴィトン 公式サイト
サンローラン 財布
新品未使用 LOUIS VUITTON ルイヴィトン モノグラム ポルトフォイユ
ルイヴィトン ポルトフォイユ ゾエ モノグラム ジャイアント コンパクト 財布
61BuxOaUMVL._SL1024_.jpg
ボッテガヴェネタ 二つ折りファスナーウォレット 財布
91miDttjmDL._SL1500_.jpg
セリーヌ 財布
6008285-024.jpg
ルイヴィトン財布

ROBE de FLEURS
【k様専用】 ルイヴィトン ポルトフォイユ・フラワーコンパクト三つ折り財布

【高知インター店】 ルイヴィトン LOUIS VUITTON ジュリエット モノグラム 財布 折り財布

この記事では、PHPでカレンダー機能を作成するコードとその解説を初心者向けにしています。

 

完成イメージは下記の画像です。

【高知インター店】 ルイヴィトン LOUIS VUITTON ジュリエット モノグラム 財布 折り財布

それでは、まずコードを紹介します。
少し長いので注意してください。

おすすめの学習法は、まず下記のコードをそのままコピーしてご自身のPCで挙動を確認してください。

アイ⭐︎還元セール様 未使用 GUCCI シルクプリーツスカート フラワー 36

PHPでカレンダー機能(index.php)

INDIVI VAI 夏スーツ3点セット(ジャケット、パンツ、スカート)

<?php
$today = filter_input(INPUT_POST, 'today');
$monthNext = filter_input(INPUT_POST, 'monthNext');
$yearNext = filter_input(INPUT_POST, 'yearNext');
$monthPrev = filter_input(INPUT_POST, 'monthPrev');
$yearPrev = filter_input(INPUT_POST, 'yearPrev');
if($today==1){
    $month = date('n');
    $year = date('Y');
}
if($monthNext > 12){
    $monthNext = 1;
    $yearNext++;
}
if($monthPrev === "0"){
    $monthPrev = 12;
    $yearPrev--;
}
$month = $monthNext??$monthPrev??date('n');
$year =$yearNext??$yearPrev??date('Y');
$last_day = date('j', mktime(0, 0, 0, $month + 1, 0, $year));
$calendar = array();
$j = 0;
for ($i = 1; $i < $last_day + 1; $i++) {
    $week = date('w', mktime(0, 0, 0, $month, $i, $year));
    if ($i == 1) {
        for ($s = 1; $s <= $week; $s++) {
            $calendar[$j]['day'] = '';
            $j++;
        }
    }
    $calendar[$j]['day'] = $i;
    $j++;
    if ($i == $last_day) {
        for ($e = 1; $e <= 6 - $week; $e++) {
            $calendar[$j]['day'] = '';
            $j++;
        }
    }
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>カレンダー</title>
  <link rel="stylesheet" href="css/stylesheet.css">
</head>
<body>
  <table>
    <thead>
      <tr>
        <form action="" method="post">
          <th><button type="submit" id="prev">
              &laquo;
              <input type="hidden" name="monthPrev" value="<?php echo $month-1;?>">
              <input type="hidden" name="yearPrev" value="<?php echo $year;?>">
            </button></th>
        </form>
        <th id="title" colspan="5"><?php echo $year; ?>年<?php echo $month; ?>月
        </th>
        <form action="" method="post">
          <th><button type="submit" id="next">
              &raquo;
              <input type="hidden" name="monthNext" value="<?php echo $month+1;?>">
              <input type="hidden" name="yearNext" value="<?php echo $year;?>">
            </button></th>
        </form>
      </tr>
      <tr>
        <th class="red">日</th>
        <th>月</th>
        <th>火</th>
        <th>水</th>
        <th>木</th>
        <th>金</th>
        <th class="blue">土</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <?php $cnt = 0; ?>
        <?php foreach ($calendar as $key => $value): ?>
        <td>
          <p>
            <?php $cnt++; ?>
            <?php echo $value['day']; ?>
          </p>
        </td>
        <?php if ($cnt == 7): ?>
      </tr>
      <tr>
        <?php $cnt = 0; ?>
        <?php endif; ?>
        <?php endforeach; ?>
      </tr>
    </tbody>
    <tfoot>
      <tr>
        <form action="" method="post">
          <td colspan="7">
            <button type="submit" id="today"> 現在に戻る
              <input type="hidden" name="today" value="1">
            </button>
          </td>
        </form>
      </tr>
    </tfoot>
  </table>
</body>
</html>

 

PHPでカレンダー機能(stylesheet.css)

次はデザイン部分のstylesheet.cssです。

body {
  font-family: 'Courier New', Courier, monospace;
  font-size: 14px;
}
table {
  border: 2px solid black;
  border-collapse: collapse;
  margin: 50px auto;
  width: 80%;
}
thead {
  background: #FFEEFF;
}
thead tr:first-child {
  width: 50px;
  height: 70px;
  text-align: center;
  line-height: 70px;
}
thead tr:nth-child(2) {
  width: 50px;
  height: 30px;
  text-align: center;
  line-height: 30px;
}
#prev,#next{
 background-color: #FFEEFF;
 border: 0px none;
 cursor: pointer;
 user-select: none;
 font-size: 30px;
}
tbody td {
  border: 2px solid black;
  position: relative;
  height: 80px;
  width: 80px;
}
tbody td:last-child,
.blue {
  color: blue;
}
tbody td:first-child,
.red {
  color: red;
}
tbody .schedules{
  margin-top: 25px;
}
tbody .schedule{
  margin: 0 auto 5px;
  text-align: center;
}
tbody button {
  border: none;
  background-color:transparent ;
  font-weight: bold;
  text-decoration: underline;
}
tbody button:hover {
  background-color: #EEFFFF;
}
tbody p {
  position: absolute;
  top: 3px;
  left: 3px;
}
tfoot {
  background: #FFEEFF;
  font-weight: bold;
  text-align: center;
}
tfoot tr {
  width: 50px;
  height: 70px;
  text-align: center;
  line-height: 70px;
}
td.today {
  background-color: #FFFFCC;
}
#today {
  cursor: pointer;
  user-select: none;
  font-size: 40px;
  background-color: #FFEEFF;
  border: 0px none;
}
#title {
  font-size: 30px;
}

 

【高知インター店】 ルイヴィトン LOUIS VUITTON ジュリエット モノグラム 財布 折り財布

CELINE バケットハット

【高知インター店】 ルイヴィトン LOUIS VUITTON ジュリエット モノグラム 財布 折り財布

// 送信されたデータを取得
$today = filter_input(INPUT_POST, 'today');
$monthNext = filter_input(INPUT_POST, 'monthNext');
$yearNext = filter_input(INPUT_POST, 'yearNext');
$monthPrev = filter_input(INPUT_POST, 'monthPrev');
$yearPrev = filter_input(INPUT_POST, 'yearPrev');

一番最初の部分です。この部分は画面上で「 《 」や「 》 」や「現在に戻る」を押した際に、そのボタンから送信されたデータを取得して、変数に格納するコードです。

ボタンを押した際に、ここでデータを受け取り、そのデータによって、画面が変わっていきます。

 

例ですが、下記の<form>タグで囲われた<button>を押した際に、<input>タブで持っているvalue属性の「1」が送信されて、

name属性を頼りに「filter_input(INPUT_POST, ‘today’)」でデータを受け取り「1」が$todayに格納されます。

<?php
$today = filter_input(INPUT_POST, 'today');
?>
<form action="" method="post">
   <button type="submit" id="today"> 現在に戻る
     <input type="hidden" name="today" value="1">
   </button>
</form>

データの送信について詳しく確認したい場合は、下記の記事を参照してください。

【クリスマスに是非‼️】ニンテンドースイッチ有機EL バイオレットスカーレッド

 

 

if($today==1){
  // 現在の年月を取得
    $month = date('n');
    $year = date('Y');
}
if($monthNext > 12){
  // 次のボタンを押した時、12月を超えた場合は月を1月にし、年に1を足す
    $monthNext = 1;
    $yearNext++;
}
if($monthPrev === "0"){
    // 前のボタンを押した時、月が0になった場合は月を12月にし、年から1を引く
    $monthPrev = 12;
    $yearPrev--;
}

tricot COMME des GARCONS 紗栄子さん着
【パーティドレス/前撮り/二次会/結婚式】ドレス★

エニィスィス/セットアップ ワンピース

二つ目は、次のボタン「》」を押した際に、月が12を超えたしまった場合、月を1に戻して、年に1を足します。

三番目は、前のボタン「《」を押した際に、月が0になった場合、月を12に戻して、年から1を引きます。

//場合分け $monthNextにデータがあれば、$monthNextを
// $monthNextにデータがなければ、$monthPrevを
// $monthNextと$monthPrevにデータがなれけば、date('n')を入れる。
$month = $monthNext??$monthPrev??date('n');
$year =$yearNext??$yearPrev??date('Y');

Chapeau d' O Eco Leather Quilt Bucket

PHPの構文で「??」でつなぐ場合は、左から順番に見ていき、データが格納されているデータを取得するというもので、

この場合、まず、$monthNextにデータがあるか確認して、データがある場合は、$monthに$monthNextのデータを格納。

$monthNextにデータがない場合は、$monthPrevを確認して、データがある場合は、$monthに$monthPrevのデータを格納。

$monthNextにも$monthPrevデータがない場合は、date(‘n’)を$monthに格納します。

// 月末日を取得
$last_day = date('j', mktime(0, 0, 0, $month + 1, 0, $year));
$calendar = array();
$j = 0;

このコードでは、表示される月の月末日を取得して、$last_dayに格納しています。
また、$calendarに空の配列を用意します。

// 月末日までループして、日付を$calendarの配列に挿入する
for ($i = 1; $i < $last_day + 1; $i++) {
    // 曜日を取得
    $week = date('w', mktime(0, 0, 0, $month, $i, $year));
    // 1日の場合
    if ($i == 1) {
        // 1日目の曜日までをループ
        for ($s = 1; $s <= $week; $s++) {
            // 前半に空文字をセット
            $calendar[$j]['day'] = '';
            $j++;
        }
    }
    // 配列に日付をセット
    $calendar[$j]['day'] = $i;
    $j++;
    // 月末日の場合
    if ($i == $last_day) {
        // 月末日から残りをループ
        for ($e = 1; $e <= 6 - $week; $e++) {
            // 後半に空文字をセット
            $calendar[$j]['day'] = '';
            $j++;
        }
    }
}

ここのコードでは、繰り返し構文(for)で表示される年月の日付を上記で作った空の配列($calendar)に$last_day(その月の末日の日付)まで順番に入れていきます。

ただし、下記の画像のようにカレンダーは、毎月始まる曜日が違うため、始まる曜日によっては1の前に空のデータを配列に入れる必要があります。

なので、下記の部分でまず、空の文字をセットします。

   // 曜日を取得
    $week = date('w', mktime(0, 0, 0, $month, $i, $year));
    // 1日の場合
    if ($i == 1) {
        // 1日目の曜日までをループ
        for ($s = 1; $s <= $week; $s++) {
            // 前半に空文字をセット
            $calendar[$j]['day'] = '';
            $j++;
        }

 

同様に下記の部分で月末日以降の部分に空の文字をセットしてます。

haruru様 専用ページ

 

PHPでカレンダー機能を実装するコードの後半(表示部分)

ミナペルホネン ハンドメイド alive ワンハンドル バッグ (巾着開閉)

ソックスモンキー

まず全体ですが、上記のようなテーブル構造になっています。

 

<!-- 前月に行くボタン「《」を押した時のフォームアクション-->
<form action="" method="post">
  <th><button type="submit" id="prev">
      &laquo;
      <!-- ボタンを押された時に送信されるデータを保持。inputタグのtype="hidden"は、画面に表示されない。 -->
      <input type="hidden" name="monthPrev" value="<?php echo $month-1;?>">
      <input type="hidden" name="yearPrev" value="<?php echo $year;?>">
    </button></th>
</form>

この部分は、前月に行くボタン「《」の部分です。
「《」については、そのまま表示されない為、「&laquo;」のように記載します。

ここでは、フォームアクションになっており、「《」を押すことで、inputタグのvalue属性の値が、name属性を頼りにこのコードの一番最初に説明した下記の部分に送信されます。

$monthPrev = filter_input(INPUT_POST, 'monthPrev');
$yearPrev = filter_input(INPUT_POST, 'yearPrev');

 

今回の場合、前月に戻るため、inputタグのname=”monthPrev”の値(Value)は、現在の月から1を引いた値( $month-1)を送信しています。

RayBan サングラス Wayfarer

 

  <th id="title" colspan="5"><?php echo $year; ?>年<?php echo $month; ?>月</th>

ここは、現在表示されている年と月を表示するコードです。

 

<!-- 次月に行くボタン「》」を押した時のフォームアクション-->
<form action="" method="post">
  <th><button type="submit" id="next">
      &raquo;
      <input type="hidden" name="monthNext" value="<?php echo $month+1;?>">
      <input type="hidden" name="yearNext" value="<?php echo $year;?>">
    </button></th>
</form>

 

この部分は、次月に行くボタン「》」の部分です。

説明は、前月に戻るボタンと同じなので省略しますが、inputタグname=”monthNext”の値(Value)は、現在の月から1を足した値($month+1)を送信しています。

<tbody>
  <tr>
    <!-- $calendarの配列で入っているデータをループで表示していく。-->
    <?php $cnt = 0; ?>
    <?php foreach ($calendar as $key => $value): ?>
    <td>
      <p>
        <?php $cnt++; ?>
        <?php echo $value['day']; ?>
      </p>
    </td>
    <!-- tdが7つになったら、次のtrを作成して次の行に移動 -->
    <?php if ($cnt == 7): ?>
  </tr>
  <tr>
    <?php $cnt = 0; ?>
    <?php endif; ?>
    <?php endforeach; ?>
  </tr>
</tbody>

ここで、カレンダーの日付部分を表示しています。

前半部分で$calendarに現在の月の日付の値が配列で格納してあるので、その値を繰り返し構文(foreach)により一つずつ取り出して表示していきます。

なお、$calendarには下記のとおり、連想配列によりデータが格納されています。

array ( 
 0 => array ( 'day' => '', ),
 1 => array ( 'day' => '', ), 
 2 => array ( 'day' => '', ), 
 3 => array ( 'day' => '', ),
 4 => array ( 'day' => '', ),
 5 => array ( 'day' => 1, ),
 6 => array ( 'day' => 2, ),
 7 => array ( 'day' => 3, ),
             ・
        ・
        ・
 34 => array ( 'day' => 30, ),
 35 => array ( 'day' => 31, ),
 36 => array ( 'day' => '', ),
 37 => array ( 'day' => '', ),
 38 => array ( 'day' => '', ),
 )
					

 

丸底トートバック usedTトレーナー デニムリメイク チャーム付き

<?php foreach ($calendar as $key => $value): ?>

 

1つずつ値を取り出して表示する部分には下記のように記載します。

<?php echo $value['day']; ?>

 

また、カレンダーは日~土曜日まで値を表示したら、次の行に折り返す必要があるため、$cnt変数に0を与え、配列から1つの値を取り出すたびに、$cntに1を足していき、

$cntが7になった時に、次の行に折り返すようになっています。

<tfoot>
  <tr>
    <!-- 現在に行くボタンを押した時のフォームアクション-->
    <form action="" method="post">
      <td colspan="7">
        <button type="submit" id="today"> 現在に戻る
          <!-- ボタンを押された時に送信されるデータを保持。inputタグのtype="hidden"は、画面に表示されない。Valueに1を保持して、現在ボタンを押したら1を送信 -->
          <input type="hidden" name="today" value="1">
        </button>
      </td>
    </form>
  </tr>
</tfoot>

最後に「現在の戻る」の部分です。

とむたむ様専用 バイブルサイズ バインダー リバティ ハンドメイド

なお、ここでは、valueに1を与えており、下記のコードで$todayに1が代入されたら現在の日付を取得するようになっています。

$today = filter_input(INPUT_POST, 'today');
if($today==1){
  // 現在の年月を取得
    $month = date('n');
    $year = date('Y');
}

 

いかがでしたか??

初心者には少し難しいかもしれませんが、これくらいのコードを理解できると初心者を脱することができると思います。

また、プログラミングでは、時間や時を扱うことが多いので是非この記事のコードを参考に自信でカレンダー機能を実装してみましょう。

 

訪問着 長襦袢セット