Posted By

sekihin on 03/09/09


Tagged

php date


Versions (?)

Who likes this?

2 people have marked this snippet as a favorite

jamesming
Scooter


date_add


 / Published in: PHP
 

  1. /*
  2. 意味:指定された時間間隔を加算した日付と時刻を日付型 (mktime) の値で返します。
  3. 引数:
  4.   $interval 加算する時間間隔を表す文字列 (String) 式です。
  5.   $number 加算する間隔数を表す数です
  6.   $date 日付型 (mktime) 間隔を追加する日時を表す式です。
  7. 返り値:
  8.   日付値(mktime)
  9. */
  10. function date_add($interval, $number, $date) {
  11.  
  12. $date_time_array = getdate($date);
  13. $hours = $date_time_array['hours'];
  14. $minutes = $date_time_array['minutes'];
  15. $seconds = $date_time_array['seconds'];
  16. $month = $date_time_array['mon'];
  17. $day = $date_time_array['mday'];
  18. $year = $date_time_array['year'];
  19.  
  20. switch ($interval) {
  21.  
  22. case 'y':
  23. $year+=$number;
  24. break;
  25. case 'q':
  26. $year+=($number*3);
  27. break;
  28. case 'm':
  29. $month+=$number;
  30. break;
  31. case 'd':
  32. $day+=$number;
  33. break;
  34. case 'ww':
  35. $day+=($number*7);
  36. break;
  37. case 'h':
  38. $hours+=$number;
  39. break;
  40. case 'n':
  41. $minutes+=$number;
  42. break;
  43. case 's':
  44. $seconds+=$number;
  45. break;
  46. }
  47.  
  48. $timestamp= mktime($hours,$minutes,$seconds,$month,$day,$year);
  49. return $timestamp;
  50. }
  51.  
  52. // 年の計算
  53. $temptime = date_add('y', 1, strtotime('2008/02/01'));
  54. echo strftime('%Y/%m/%d',$temptime) . "<br>";
  55.  
  56. // 月の計算
  57. $temptime = date_add('m', 1, strtotime('2008/02/01'));
  58. echo strftime('%Y/%m/%d',$temptime) . "<br>";
  59.  
  60. // 日の計算
  61. $temptime = date_add('d', 1, strtotime('2008/02/01'));
  62. echo strftime('%Y/%m/%d',$temptime) . "<br>";
  63.  
  64. //●実行結果
  65. //2009/02/01
  66. //2008/03/01
  67. //2008/02/02

Report this snippet  

You need to login to post a comment.