日付文字列を比較して、年月日が異なる場合は年月日を、同一年の場合は月日を返す、同一年月の場合は月日を返す。※1日を厳密に直近24時間以内で判定

日付および時刻関連

 閲覧数:785  投稿日:2020-05-28  更新日:2020-06-03  

1日は、厳密に24時間の差で判定している

・下記は、24時間経過していないため、同日扱い
2020-05-27 18:35:18
2020-05-28 16:17:22

このコードは×。
正確にdiff出来ない月がある
→ http://phpcode.w4c.work/php/status/214




コード

$time1 = new DateTime('2019-04-01');
$time2 = new DateTime('2019-04-25 19:23:43');
$diff = $time1->diff($time2);

if($diff->y>0):
  echo '<p>', $time2->format ('Y年n月d日'), '</p>';
endif;
if($diff->m>0):
  echo '<p>', $time2->format ('n月d日'), '</p>';
endif;
if($diff->d>0):
  echo '<p>', $time2->format ('d日'), '</p>';
endif;



結果

<p>25日</p>



タグ


DateTime 





MySQLのdatetime型カラムより取得した「文字列」を、(先頭0なしの)年月日時分秒で表示

日付文字列を比較して、年月日が異なる場合は年月日を、同一年の場合は月日を返す、同一年月の場合は月日を返す。※1日を24時間以内ではなく数値で判定



類似度ページランキング
順位 ページタイトル抜粋
1 日付文字列を比較して、年月日が異なる場合は年月日を、同一年の場合は月日を返す、同一年月の場合は月日を返す。※1日を厳密に直近24時間以内で判定 59
2 日付文字列を比較して、年月日が異なる場合は年月日を、同一年の場合は月日を返す、同一年月の場合は月日を返す。※1日を24時間以内ではなく数値で判定 52
3 MySQLのdatetime型カラムに格納している値と比較して、24時間以内かどうかを判定 29
4 配列キー内に「指定文字列が含まれるキー」と「その値」を抽出して、新しい配列を返す 27
5 指定文字が2回目に出現する位置以降の文字列を取得 25
6 2 つの配列(文字列とdatetime)が要素順で 対応している時、日付を整形して 新しい配列を作成 25
7 本日が「複数設定した指定日」の当日に該当するか、を判定 22
8 文字数に基づき、文字列の一部を取得する 22
9 array_diffを使用して、「複数配列」間で「存在している値」を比較後、その結果を配列で返す 22
10 MySQLのdatetime型カラムより取得した「文字列」を、(先頭0なしの)年月日時分秒で表示 22
11 本日が「第何何曜日」の当日に該当するか、を判定 21
12 MySQLのdatetime型カラムより取得した「月日文字列」先頭に0があった場合、削除 21
13 指定した幅で文字列を丸めた後、「…」文字を追加する 21
14 「最後に位置している指定文字列」より後の文字列を取得 21
15 対象文字列の内、「最初の指定文字列以前」と「それ以降の文字列」を取得する 21
16 「指定文字」直後から「指定文字」直前までの文字列を返す 20
17 「対象文字列」に「指定文字列」が含まれていれば、「指定文字列」より後を返す 20
18 投稿日時をTwitterのように「 20
19 ユーザー登録時の確認メール。24h以内ならば有効。DBよりdatetime型の「レコード作成日時」を取得し、「24h前の現在時刻」と比較 20
20 UNIXのタイムスタンプから日付(文字列)を取得後、「アクセスした時点の年月日時分秒」を整形して表示 … date() 20
2025/2/06 2:49 更新
週間人気ページランキング / 1-30 → 2-5
順位 ページタイトル抜粋 アクセス数
1 URLから、トップページ(index.html)判定 | ルーティング 11
2 24時間以降の時刻を表示 / "02:30" → "26:30" | 日付および時刻関連 5
3 後ろから3文字削除 / 「18:00:00」→「18:00」 | 文字列(テキスト処理) 4
3 PHPで最後の「指定区切り文字」より後ろを取得 | 配列(型) 4
3 8桁の生年月日数字を分解 | 文字列(テキスト処理) 4
3 配列の内容(ひらがな)を、読み(あ行~わ行)で分け、新たな配列へ格納 | 配列(型) 4
4 現在WebページのURLパスを第2階層まで取得 | パス 3
4 「指定文字」直後から「指定文字」直前までの文字列を返す | マルチバイト文字列(テキスト処理) 3
4 null代入とunset()の違い | 変数 3
4 配列キー内に「指定文字列が含まれるキー」と「その値」を抽出して、新しい配列を返す | 配列(型) 3
5 対象文字列を、文字数に応じて半分に分割後、それぞれを取得 | 文字列(テキスト処理) 2
5 日付表示(フォーマット指定) | 日付および時刻関連 2
5 foreach内で一度「true」判定された後、次回以降「false」にする仕組みがないと、foreachの度に「true」「false」判定することができない | 条件分岐 2
5 配列の空要素を削除 / array_diff()で空配列と比較し配列の差分を返す | 配列(型) 2
5 多次元配列で「二次元目の最大値 +1 」 を返す | 配列(型) 2
5 指定文字列より前を取得 | 文字列(テキスト処理) 2
5 foreachの中でswitch文 | 配列(型) 2
6 指定配列キーの重複数をカウント | 配列(型) 1
6 Smartyのテンプレートにincludeしたファイルを表示 | Smarty(テンプレートエンジン) 1
6 MySQLのdatetime型カラムに格納している値と比較して、24時間以内かどうかを判定 | 日付および時刻関連 1
2025/2/6 1:02 更新