このコードは時間を3日前、5秒前、2年前の形式に変換できます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
// 日付をどれくらい前かを示す文字列に変換します // その日付は.... 例: 2 日前、3 分前。 関数前($d) { $c = getdate(); $p = array('年', '月', 'mday', '時間', '分', '秒'); $display = array('年', '月', '日', '時', '分', '秒'); $factor = 配列(0, 12, 30, 24, 60, 60); $d = datetoarr($d); for ($w = 0; $w if ($w > 0) { $c[$p[$w]] += $c[$p[$w-1]] * $factor[$w]; $d[$p[$w]] += $d[$p[$w-1]] * $factor[$w]; } if ($c[$p[$w]] - $d[$p[$w]] > 1) { return ($c[$p[$w]] - $d[$p[$w]]).'.$display[$w]. 前'; } } 戻る ''; } // 必要に応じてこれを置き換えることができます。 // これは、mysql の日付文字列から返された日付を変換します // getdate() によって返されるものと同様の配列オブジェクトに変換されます。 関数 datetoarr($d) { preg_match("/([0-9]{4})(\-)([0-9]{2})(\-)([0-9]{2})([0-9]{ 2})(\:)([0-9]{2})(\:)([0-9]{2})/",$d,$matches); 配列を返す( '秒' => $matches[10], '分' => $matches[8], '時間' => $matches[6], '今日' => $matches[5], 'mon' => $matches[3], '年' => $matches[1], ); } |