wordpress運営で、「今日の日付」を表示したいときってないですか?
ちょっと、ハマってしまったというか、悩んだことがありましたので記事にしておきます。
google広告
一見、これでよさそうだけど。。。
「php 今日の日付」などで検索をかけると、date(“Y/m/d”)などと書いてありますので
1 | <?php echo date ( "Y-m-d" ); ?> |
と書いてみます。ちょっと当サイトで、single.phpに書いて試してみると、
このように表示されて、確かに一見良さそうなんですが、
1 | <?php echo date ( "Y-m-d H:i:s" ); ?> |
こう書き換えて表示させると
時間まで表示できますが、
パソコンの右下の時間を確認すると、ちょうど9時間遅れていることが分かります。ワードプレスの中では、こんな表示がルールのようです。
運営の仕方にもよるけど
9時間くらい気にしない!という運営もあると思います。記事が更新されて3日間は「new!」と表示してユーザーにアピールするなんて運営をしているときは問題なさそうですが、ワールドカップまで、あと何日!なんて運営している時は、ちょっと問題です。
第一感は9時間ずらすだった
管理人の第一感は、9時間ずらすことでした。つまり
1 | <?php echo date ( "Y-m-d H:i:s" , strtotime ( "+9 hour" )); ?> |
・・・確かにこれでも正確に表示されるんですが、日付と時刻の書式 – WordPress Codex 日本語版を読むと、
日付をローカライズするには、date_i18n()/en 関数を使ってください。
とあります。そこで、WordPressでの現在日時取得はdate_i18n()を使う | UCWD-Studio.【ホームページ制作 / 京都】 こちらのサイトさんから教えていただきました。
1 2 | <?php echo date_i18n( "Y-m-d H:i:s" ); //現在時刻まで表示 ?> <?php echo date_i18n( "Y-m-d" ); //今日の日付だけ表示 ?> |
おそらく、これが正解だと思います。
追記 2014/6/5
もう少しメモしておきます
1 2 3 4 | $today = date_i18n( "Y-m-d" ); //今日の日付 $tomorrow = date ( "Y-m-d" , strtotime ( "$today +1 day" )); //明日の日付 $dayaftertomorrow = date ( "Y-m-d" , strtotime ( "$today +2 day" )); //あさっての日付 echo date ( "m月d日" , strtotime ( "$tomorrow" )); //明日の日付を○月○日と表示したいとき |
functions.phpに日付計算式を書いて、ショートコードで返す場合
1 2 3 4 5 | function today_date_keisan() { $today = date_i18n( "Y-m-d" ); return $today ; } add_shortcode( 'today_date_hyouji' , 'today_date_keisan' ); |
このようにreturnを使わないと上手く表示できない。echoだとページのどこに表示されるか分からない
数回、福岡市内のアドセンスなどのセミナーでお会いしましたJunです。
Toshiさんのブログ等はよく拝見しています。
いつも良質な記事で大変参考にさせてもらっています。
さて、APIの記事ですが、非常に興味があります。
私も、いくつか旅行サイトを運営しており、バリューコマースの旅行APIを導入したいと思い、挑戦していますがうまくいきません。
APIからサイトにデータを返してきているようですが、サイトへの表示が全くできません。
また、楽天の旅行APIも使いたいと思っていますが、少しハードルが高いようです。
APIに限らず、今後情報交換していだければ幸いです。
Junさん、コメントありがとうございます。お久しぶりですね。
いやあ、実は自分も検索して、他の人のサイトを参考にというか、切り貼りして四苦八苦しながら運営しているのが現状なんです。(^_^;)