読者です 読者をやめる 読者になる 読者になる

肉とビールとパンケーキ by @sotarok

少し大人になった「肉とご飯と甘いもの」

Datetimeオブジェクト / PHPにおける2038年問題

PHP

また日付ネタなんて,オイラはとんでもねえ粘着なんだぜ.

一応エントリ書く.まぁでももうそろそろウザそうなので手短にw

Datetimeオブジェクトと2038年問題

Datetimeオブジェクト,と聞いてなんとなく予感がしたけど,こいつは2038年問題をクリアしてます.

      • -
% php -r '$date = new Datetime();
$date->setDate(2038, 1, 19);
$date->setTime(3, 14, 7);
echo $date->format(Datetime::RSS) . "\n";'
Tue, 19 Jan 2038 03:14:07 +0900
      • -
% php -r '$date = new Datetime();
$date->setDate(2038, 1, 19);
$date->setTime(3, 14, 7);
$date->modify("+1 second");
echo $date->format(Datetime::ATOM) . "\n";'
2038-01-19T03:14:08+09:00
      • -
% php -r '$date = new Datetime();
$date->setDate(2038, 1, 19);
$date->setTime(3, 14, 7);
$date->modify("+1 month");
echo $date->format(Datetime::RFC822) . "\n";'
Fri, 19 Feb 38 03:14:07 +0900


まぁご覧のとおりです.
//なんで毎回違いフォーマットで出したかって,そりゃあ定数つかってみたかっただけです.

ちなみに

Datetimeオブジェクトが使えるのはPHP5.2.0以降です.(前の記事でリンク張ったけど)
date_create()関数を使ってもオブジェクトを生成することができます.これは5.1.0から使えます.

めでたしめでたし

たぶんもうこのネタおしまい(笑)

追記

わーい!1x1のShinさんやid:shimookaさんがとっくの昔にやってたネタだったよー!やったね♪*1


PHPのすごい人はどうやらこのことを知らないみたいですぜ!やりましたね!!

*1:記事にする前にまずググろう!