メシのタネ

Webプログラミング 備忘録

  • AWS移行でコケ中

    現在このWebサイトが稼働している、このサーバーのMySQLをマスターとし、AWS上のRDSをスレーブとして、データ移行をしようと思ったが、バイナリロギングの取得が上手くいかない。多分の手順VPSのDBでスレーブ用のユーザ作成バイナリロギングを行うスレーブ側RDSにマスターのDUM[...]

    続きを読む
  • AWS ソリューションアーキテクト アソシエイトに合格しました。

    実は、今日までIT無資格でした。ええ歳だし、そろそろなんか資格取っておくかーと考えだしたので、取って嬉しい資格を取ろうと思ってたところ、AWSの資格あったなーと思って、調べてみたら、みんな14日で受かる!とか言ってるので、じゃあというこで、試験日14日後とかにして、試験の予約入れたのが地獄の始まり[...]

    続きを読む
  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む

【PHP】 DateTimeクラス

shiraberu
日付を扱うにあたって今までdateとかstrtotimeとか使ってましたけど、
DateTimeクラスを使うのが良いよって事で、基本的に何ができるのか
ふんわーりと調べてみました。

今日の日時と日付の追加

DateTimeはクラスなのでクラスが良く分からない人は
@yandod先生のクラスの教室を見てもらうといいかもしれません。
一応クラスの教材を前の記事で紹介してます。無料です。

</p>
<p>$createday = new DateTime();<br />
$createday-&gt;setDate(2014,7,15)-&gt;setTime(0,10,30);</p>
<p>

new DateTimeした時に何も渡さないと今日の情報が行きます。
setDateメソッドで日付を渡すとその日付の情報がオブジェクトに反映されます。
setTimeは時間の情報です。

出力する時はこうします。

</p>
<p>var_dump($createday-&gt;format('Y-m-d H:i:s'));<br />
var_dump($createday-&gt;format('U'));</p>
<p>

この辺はdate()と一緒な感じがしました。

オブジェクト内の日付の変更

modifyメソッドを使えばオブジェクト無いの日付を進めたり、
戻したりとかできます。こんな感じです。

</p>
<p>$createday = new DateTime();<br />
$after3month = $createday-&gt;modify('+3 month')-&gt;format('Y-m-d H:i:s');<br />
var_dump($after3month);<br />
$today = $createday-&gt;modify('-3 month');<br />
var_dump($today);</p>
<p>

日付オブジェクト同士の差を計算する

何日経過したかを計算するのにdiffメソッドっていうのがあります。
二つ日付オブジェクトを作って、作った日付オブジェクトの差を計算します。

</p>
<p>$today = new DateTime();<br />
$after3month = new DateTime('+3 month');<br />
var_dump($today-&gt;diff($after3month)-&gt;format('%R%mヶ月%d日 後'));<br />
var_dump($today-&gt;diff($after3month)-&gt;format('%R%a日 後'));<br />
$before3month = new DateTime('-3 month');<br />
var_dump($today-&gt;diff($before3month)-&gt;format('%R%mヶ月%d日 前'));<br />
var_dump($today-&gt;diff($before3month)-&gt;format('%R%a日 前'));</p>
<p>

こんな感じで非常に便利なので、phpが5.2以上なら使ってみて下さい。
Windows版PHP 5.3.2だとdiff()が常に6015を返すバグがあるみたいです。

関連記事

  1. PHPサムネイル
  2. 2012.12.07

    【PHP】Cakephp
  3. PHPサムネイル

コメントをお待ちしております