Grilled Cheese

ExploreLog inSign up
Terms of UsePrivacy PolicyCommunity StandardsHelpGet the app

Grilled Cheese is a product of Village Compute

Version devBuilt at: 2026-10-20 22:20:53 EDT

PhotosVideosAllPeople
LatestRanked
@legacy-it-tan.bsky.socialOct 20, 2026, 8:38 PM

#PHPでコーディング 22

// 指定日の7日前(1週間前)を求める
echo date( "Y-m-d", strtotime( "-7 days", strtotime("2021-03-01") ) );
→ "2021-02-22"

うるう年なども考慮して正確に
日付の足し算・引き算ができるので便利。

※文字列⇔UNIX秒 の変換部分が
ややこしくなりがちなので注意。

@legacy-it-tan.bsky.socialOct 19, 2026, 8:08 PM

#PHPでコーディング 21

日付や時刻の加減算:

strtotime( 加減算を指定する文字列, 基準日時のUNIX秒 )
→加減算されたUNIX秒が返る。

詳しい指定方法
https://www.softel.co.jp/blogs...
±1 second
±1 minute
±1 hour
±1 day
±1 week
±1 month
±1 year

±2以上の場合,複数形はsを付ける。

@legacy-it-tan.bsky.socialOct 19, 2026, 5:39 AM

#PHPでコーディング 20

// タイムゾーンを日本に
date_default_timezone_set("Asia/Tokyo");

// 基準日付のUNIX秒
$a=strtotime("2021-04-01");

// 基準から1日後のUNIX秒
$b=strtotime("+1 day", $a);

// 基準から1日後の日時文字列
$c=date("Y/m/d H:i:s", $b);
→ "2021/04/02 00:00:00"

@legacy-it-tan.bsky.socialOct 18, 2026, 9:08 AM

#PHPでコーディング 19

strtotimeは
第1引数の文字列を
UNIX秒に変換するのだが

第1引数に"+1 second"など
差分を指定した場合,
第2引数に
基準となるUNIX秒を指定できる。
※省略すると現在のUNIX秒が渡される。

① strtotime( "+1 second" )
② strtotime( "+1 second", time() )
↑
同じ

@legacy-it-tan.bsky.socialOct 17, 2026, 5:38 PM

#PHPでコーディング 18

strtotimeの引数には,
日時文字列を渡す以外に
現在時刻からの差分を指定できる。

// 現在のUNIX時刻 (UTC)
echo time();
→ 1623123676

// 現在の1秒後
echo strtotime("+1 second");
→ 1623123677

// 現在の2秒前
echo strtotime("-2 seconds");
→ 1623123674

@legacy-it-tan.bsky.socialOct 17, 2026, 2:08 AM

#PHPでコーディング 17

// タイムゾーンを日本に
date_default_timezone_set("Asia/Tokyo");

// 現在のUNIX時刻
echo time(); ①

// 現在の日時文字列
echo date("Y-m-d H:i:s");

// 現在の日時文字列をUNIX秒に変換
echo strtotime( date("Y-m-d H:i:s") ); ②

①と②で同じ結果が返る。

@legacy-it-tan.bsky.socialOct 16, 2026, 11:08 AM

#PHPでコーディング 16

// タイムゾーンをUTCに
date_default_timezone_set("UTC");
echo date("Y/n/d H:i:s")
. ", "
. date("Y/n/d H:i:s", time());

// タイムゾーンを日本に
date_default_timezone_set("Asia/Tokyo");
echo date("Y/n/d H:i:s")
. ", "
. date("Y/n/d H:i:s", time());

@legacy-it-tan.bsky.socialOct 15, 2026, 4:09 PM

#PHPでコーディング 15

date()の第2引数には
UNIX時刻を渡せる。

省略した場合
現在時刻が指定される。

①
date( "Y/m/d H:i:s" )

②
date( "Y/m/d H:i:s", time() )

↑
同じ結果を返す。

どちらも内部的に
現在UNIX秒をUTCで読み込み
デフォルトタイムゾーンでの日時文字列を表示する。

@legacy-it-tan.bsky.socialOct 15, 2026, 12:39 AM

#PHPでコーディング 14

time() で取得する現在UNIX秒は
常にUTCでの値となり
タイムゾーンに依存しない。

// UTCでUNIX時刻
date_default_timezone_set("UTC");
echo time();

// 日本のタイムゾーンでUNIX時刻
date_default_timezone_set("Asia/Tokyo");
echo time();

↑
この2つは同じ値。

@legacy-it-tan.bsky.socialOct 14, 2026, 7:09 AM

#PHPでコーディング 13

// この実行環境におけるINT型の最大値
echo PHP_INT_MAX;
→ 9223372036854775807 (paizaの場合)

// 扱える最大値に+1した後,無理やり整数に変換
echo intval( PHP_INT_MAX+1 );
→ -9223372036854775808
「オーバーフローして負になった」?

http://scrap.php.xdomain.jp/ph...

@legacy-it-tan.bsky.socialOct 13, 2026, 3:39 PM

#PHPでコーディング 12

// この実行環境におけるINT型の最大値
echo PHP_INT_MAX;
→ 9223372036854775807 (paizaの場合)
この値は約9.22×10^18

// この環境で扱える整数の最大値に+1してみる
echo PHP_INT_MAX + 1;
→ 9.2233720368548E+18
int型から自動的にfloat型になる。

@legacy-it-tan.bsky.socialOct 12, 2026, 7:08 PM

#PHPでコーディング 11

// この実行環境におけるINT型の最大値
echo PHP_INT_MAX;
→ 9223372036854775807 (paizaの場合)

// その数は何ビットか(2の何乗か)
echo log( PHP_INT_MAX + 1, 2 );
→ 63
※+1 した時点でintからfloatにキャストされている。

符号部分が1ビットなので
64ビット整数

@legacy-it-tan.bsky.socialOct 12, 2026, 6:09 AM

#PHPでコーディング 10

// このPHP実行環境におけるINT型のサイズ
echo intval( PHP_INT_SIZE );
→ 8 (paizaの場合)
8バイト=64ビット

定義済みの変数
https://www.php.net/manual/ja/...
PHP_INT_SIZE (int)
この PHP ビルドにおける整数型のサイズ (バイト数)。

@legacy-it-tan.bsky.socialOct 11, 2026, 5:38 PM

#PHPでコーディング 9

// 32ビット整数で表現可能な最大の値
// 2の31乗-1
$a = pow( 2, 31 ) - 1;

// 日付として表現してみる
date_default_timezone_set("UTC");
echo date("Y-m-d H:i:s", $a);
→ "2038-01-19 03:14:07"

この時刻を過ぎると
2038年問題が起きる
https://ja.wikipedia.org/wiki/...

@legacy-it-tan.bsky.socialOct 11, 2026, 8:10 AM

#PHPでコーディング 8

以前,UNIX時間は32ビット整数で表現されていた。
32ビット整数の最大値
2147483647を超えると
時刻を正しく扱えなくなる。(2038年問題)

32ビット整数のうち
1ビットは符号として使用。
残りの31ビットで表現できる整数の最大値は
2^31 - 1
=2147483648 - 1
=2147483647

@legacy-it-tan.bsky.socialOct 10, 2026, 10:09 PM

#PHPでコーディング 7

UNIXエポックより前の
UNIXタイムスタンプは
負の整数値

// タイムゾーンをUTCに
date_default_timezone_set("UTC");

// UNIXエポックの1秒前
echo strtotime("1969-12-31 23:59:59");
→ -1

// UNIXエポックの1分前
echo strtotime("1969-12-31 23:59:00");
→ -60

@legacy-it-tan.bsky.socialOct 10, 2026, 7:39 AM

#PHPでコーディング 6

UNIX秒の取得サンプル

// タイムゾーンをUTCに
date_default_timezone_set("UTC");

// UNIXエポック
echo strtotime("1970-01-01 00:00:00");
→ 0

// 1秒後
echo strtotime("1970-01-01 00:00:01");
→ 1

// 1分後
echo strtotime("1970-01-01 00:01:00");
→ 60

@legacy-it-tan.bsky.socialOct 9, 2026, 7:08 PM

#PHPでコーディング 5

・strtotime
https://www.php.net/manual/ja/...
日付文字列を
UNIXタイムスタンプ(INT)に変換する。
(1970年 1月1日 00:00:00 UTC からの経過秒数)

・UNIX時間
https://ja.wikipedia.org/wiki/...
1970年1月1日午前0時0分0秒 (UNIXエポック) からの経過秒数。

@legacy-it-tan.bsky.socialOct 9, 2026, 8:08 AM

#PHPでコーディング 4

// 日時文字列を読み取って表示フォーマット変更
echo date( "Y/m/d H時i分s秒", strtotime("2021-04-01 12:34:56") );

→ "2021/04/01 12時34分56秒"

// 存在しない日付を文字列から読み取った場合
echo date( "Y/m/d", strtotime("2021-02-29") );

→ "2021/03/01"

@legacy-it-tan.bsky.socialOct 8, 2026, 3:38 PM

#PHPでコーディング 3

date format
https://www.php.net/manual/ja/...
"w"
曜日を数値で返す。
0 (日曜) から 6 (土曜)

// 曜日番号を出力
echo date("w");
→ 2 (火曜日の場合)

// 曜日番号に対応した漢字略称
echo [ "日", "月", "火", "水", "木", "金", "土" ][
date("w")
];

→ "火"

Load more