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

日付および時刻関連

 閲覧数:743  投稿日: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
2024/11/23 10:41 更新
週間人気ページランキング / 11-16 → 11-22
順位 ページタイトル抜粋 アクセス数
1 配列キー内に「指定文字列が含まれるキー」と「その値」を抽出して、新しい配列を返す | 配列(型) 8
1 後ろから3文字削除 / 「18:00:00」→「18:00」 | 文字列(テキスト処理) 8
2 URLから、トップページ(index.html)判定 | ルーティング 6
3 指定文字列より前を取得 | 文字列(テキスト処理) 5
4 配列の内容(ひらがな)を、読み(あ行~わ行)で分け、新たな配列へ格納 | 配列(型) 4
4 MySQLのdatetime型カラムに格納している値と比較して、24時間以内かどうかを判定 | 日付および時刻関連 4
5 現在WebページのURLパスを第2階層まで取得 | パス 3
5 対象文字列の内、「最初の指定文字列以前」と「それ以降の文字列」を取得する | 文字列(テキスト処理) 3
5 2 つの配列(文字列とdatetime)が要素順で 対応している時、日付を整形して 新しい配列を作成 | 配列(型) 3
6 再帰処理で平坦な連想配列をツリー化 | 多次元配列(型) 2
6 「1週間後の年月日時分秒」を表示 … time() | 日付および時刻関連 2
6 投稿日時をTwitterのように「★分前」「★時間前」という文字列変換するユーザ定義PHP関数 | 日付および時刻関連 2
6 配列要素を、文字列連結して表示(元配列を上書) … foreach文+implode | 配列(型) 2
6 8桁の生年月日数字から、年齢を計算 | 日付および時刻関連 2
6 null代入とunset()の違い | 変数 2
6 PHPで最後の「指定区切り文字」より後ろを取得 | 配列(型) 2
7 配列定数同士をarray_mergeで後ろに単純連結(キーは新たに振り直す) | 定数 1
7 gethostbyaddr / IPアドレスからホスト名を取得 | ネットワーク 関数 1
7 マークダウンで書かれたURLを(エスケープ処理するのではなく)削除する | テキスト処理 1
7 対象文字列を、文字数に応じて半分に分割後、それぞれを取得 | 文字列(テキスト処理) 1
2024/11/23 1:02 更新