エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


PHPで特定の日間の日付を for、strtotimeで表示する

      2014/04/05

ある特定の日とある特定の日の間の日付を表示する

 

for文の条件に strtotimeを使う

 
ある特定の日とある特定の日の間の日付を取得する処理を作る必要があったのですが、それを for文でアッサリと実現できてしまったので、サンプルソースを載せることにしました。
 
実際に試してもらいやすくするために、サンプルソースに入力フォームと入力チェックも付けました。
 
——————–

——————–
 
上記のプログラムを実行すると、下記のような感じで日付の一覧が表示されます。
 

 
 
ここでは単に日付を表示しているだけですが、実際に利用している処理としては、特定の日と特定の日の間の株価を更新するためのツールとして作りました。
データベースに入っている株価の情報ですが、株式分割などの影響で株価や売買数の調整をする場面が生じます。
そういう場面に使うツールとして、対応する日付と変更された株価の倍率などを指定して、1日 1行の UPDATE文を作成して実行していく、というツールです。
 
その UPDATE文を作る際に特定の日と特定の日の間の日付を取得する必要があったわけです。
土日、祝日の表示は必要なかったものですが、せっかく日付の管理をするならばと後から付けました。
 
実際に作ってみると意外に簡単だったんですが、for文の条件の中にも strtotimeが使えたことが新鮮な驚きがありました。
 
 

for文サンプルソースの解説

 
具体的には上記のソースです。
 
面白かったのは、49行目の for文のところです。
 
for文は、特定の開始の数値から、決められた数値を増やしていきながら、決められた条件になるまで処理を繰り返す、というものです。
 
そのため、増やしていく数値は「1」ずつ増やしていく必要はないわけですが、下記のように 1ずつ足していくものをよく記述します。
——————–

——————–
 
だけど、今回は「1」ずつであっても「1日」ずつ増やしていくわけで、それはどうすればいいんだろう?とふと思ったことがきっかけです。
 
ただ、出来上がった for文の条件は、strtotimeで日付を UNIXタイムスタンプの数値に変換しているだけですので、
 
例えば、2014年01月01日~2014年01月20日の場合は、
 
strtotime(“2014-01-01”); となり、実際の値は「1388502000」になり、for文の中身は
 
——————–

——————–
 
となっているだけなんですよね。
 
具体的に数値を当てはめてみると何の問題もないことが分かるわけですが、自分で記述しておきながら、ほほーと思った次第です。
 
もし、日付を for文でぐるぐる回しながら何かしらの処理を作る方の参考になれば幸いです。

 - PHP・Smarty・ECCUBE

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

PHPのcURLでAPIやWebサイトへのアクセス方法。file_get_contentsとの比較
PHPのcURLでAPIやWebサイトへのアクセス方法。file_get_contentsとの比較

PHPからWebサイトにアクセスしてHTMLを取得、APIにアクセスして情報を取得する場合は、cURLがオススメ。file_get_contentsでも可能だがエラー制御に難がありトラブルのもとになる。

配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例
配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例

配列の値を「、」でつないで出力する際、単純にforeachで繰り返し処理をすると「イヌ、サル、キジ、」となるが文字列最後の「、」を出力しない方法を3つ解説している。

GMOペイメントゲートウェイのjava.io.IOExceptionのエラー

ECCUBEの決済でGMOペイメントゲートウェイのモジュールを使ってテスト決済を行った場合の不具合、java.io.IOExceptionと言うエラーの原因と対策方法の解説です。

PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う
PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う

PHPには日時をオブジェクトとして生成する関数「DateTimeImmutable」「DateTime」が用意されている。これを利用して1ヶ月後、月初日、月末日、5日後などを指定して日付を取得できる。

連想配列のキーも値もまとめてhtmlspecialchars()でサニタイズする関数の作成解説
連想配列のキーも値もまとめてhtmlspecialchars()でサニタイズする関数の作成解説

PHPの配列・連想配列のキーと値をまとめてhtmlspecialchars()関数でサニタイズ(無害化、無毒化)を行う関数を作成。連想配列のキーはarray_map()関数でのサニタイズは無理。

PHPのデバッグで使う print_r、var_dump、var_exportの動作の違い
PHPのデバッグで使う print_r、var_dump、var_exportの動作の違い

PHPのデバッグ等で変数や配列の中身を確認するために使用する関数print_r、var_dump、var_exportの動作の違い、仕様の違いについて確認した。var_exportがオススメ。

WindowsのXAMPPのPHPではstrptimeは使用不可。代替はdate_parse_from_formatを使う
WindowsのXAMPPのPHPではstrptimeは使用不可。代替はdate_parse_from_formatを使う

strptimeはWindowsのPHPには未実装。LinuxとMacで挙動が異なる。PHP8.1で非推奨になる。なので日付のチェックはdate_parse_from_formatを使おう。使い方を詳細解説。

複数銘柄を指定して株価チャートを一覧するツール公開

入力銘柄の5日間、3か月間、6か月間、1年間、2年間の株価チャートを一覧表示しますのでチャートで売買判断をするのに最適です。

PHPで正規表現の検証には preg_match_allが便利

PHPで正規表現の検証には preg_match_allが便利です。その便利さの使い方の解説です。

Smartyのテンプレート内の処理で計算、加工をする方法

Smartyのテンプレート上で変数を計算する、加工する方法を解説します。