質問: ### 前提・実現したいこと よくSNSで見る○日前や○時間前などの計算方式が知りたいのですがどうやってるのでしょうか? 例えば最終ログインが2020.02.21 18:19だとします。 今が2020.03.25 15:19だとして、 どのような計算して○日前○時間前と出すのが正しいのかわかりません 単純に日付を数字と扱いマイナスにした場合でも計算が狂うと思いますし、以ての外ですよね? 詳しい方教えていただけませんでしょうか?
回答: 本当にそのままするなら、 time() - strtotime(対象の日) とかして、差分を1日の秒数で割って 余りを みたいな感じ。 ただ「対象の日」が「日付として正しく認識できるフォーマット」じゃないと1970年1月1日になるので、提示されたように`.`区切りだったり日本語(年月日)だとダメ。 datetime型として認識できるかたちにしないと。 > > strtotime > > strtotime — 英文形式の日付を Unix タイムスタンプに変換する > > この関数は**英語の書式での日付を含む文字列が指定されること**を期待しており、 > > > あとは、「PHP 日付 差分計算」で調べてやってみてください。