カレンダーを作っています。
画像1のように出力したいのですが、月初の位置が思うような位置に
出力できません。 を使用しています。
' ' = 半角スペース分 = 半角英数字分
との認識でやっていますが、どうもずれてしまいます。
なぜでしょうか?
画像1
'使用
半角英数字
php
1<!doctype html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>サンプル</title> 6</head> 7<body> 8<style type="text/css"> 9. calendar { 10 font-family: "MS ゴシック", "MS Gothic", "Osaka-等幅", Osaka-mono, monospace; 11} 12</style> 13<div class="calendar"> 14<?php 15//末日 16$lastday = date('t'); 17//月初 18$month = date('n'); 19//年 20$year = date('Y'); 21//1日の曜日を取得する。 22$timestamp = mktime(0, 0, 0, date('n'), 1); 23//(1日)の曜日を0~6で取得 24$week = date('w' ,$timestamp); 25//必要なブランクの数: $weekの3倍 26$blank = $week * 3; 27//ブランクまでスペースを繰り返す 28for ($i = 0; $i < $blank; $i++) { 29 echo ' '; 30} 31//末日まで繰り返す 32for ($i = 1; $i <= $lastday; $i++) { 33 //月初のタイムスタンプ 34 $timestamp = mktime(0, 0, 0, $month, $i, $year); 35 //日付取得 36 $date = date('d', $timestamp); 37 //曜日の取得 38 $week = date('w', $timestamp); 39 echo $date; 40 //土曜日の後ろは改行、その他はスペース 41 echo ($week == 6) ? '<br>' : ' '; 42} 43//var_dump($blank); 44?> 45</div> 46</body> 47</html>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/27 02:20