php strtotime 函数与实例教程

strtotime(字符串$时间[,诠释$现在])int strtotime(string $time [,int $now] 该函数期望得到一个包含美国英语日期格式,并会尝试解析成一个Unix时间戳(多少秒自1970年1月1日00:00:00星期一该格式),相对于现在提供的时间戳,或当前时间如果现在不提供

这个函数将使用TZ环境变量(如果有)来计算时间戳,自PHP 5.1.0有更容易的方法来确定所使用的所有/日期时间函数的时区,这一过程是解释在date_default_timezone_get()函数的一页.

解析的字符串,在PHP 5.0.0,不允许在微秒的时间,自PHP 5.0.0他们是允许的,但忽略.

现在哪些是作为计算基数相对日期使用时间戳.

返回值:在成功返回一个时间戳,否则返回FALSE,前到PHP 5.1.0,这个函数将返回失败-1.

现在我们来看看strtotime字符转换成时间的函数实例,代码如下:

  1. <?php
  2. //function
  3. function nextWeeksDay($date_begin,$nbrweek)
  4. {
  5. $nextweek=array();
  6. for($i = 1; $i <= $nbrweek; $i++) { // 52 week in one year of coursewww.phpfensi.com
  7. $nextweek[$i]=date('D d M Y', strtotime('+'.$i.' week',$date_begin));
  8. }
  9. return $nextweek;
  10. }
  11. /// end function
  12. /// example of a select date
  13. // var
  14. $date_begin = strtotime('06-05-2010'); //D Day Month Year - like function format.
  15. $nbrweek=52;
  16. // call function
  17. $result=nextWeeksDay($date_begin,$nbrweek);
  18. // Preview
  19. for($i = 1; $i <= $nbrweek; $i++) {
  20. echo '<br> - '.$result[$i];
  21. }
  22. ?>
  23. <?php
  24. $str = 'Not Good';
  25. // previous to PHP 5.1.0 you would compare with -1, instead of false
  26. if (($timestamp = strtotime($str)) === false) {
  27. echo "The string ($str) is bogus";
  28. } else {
  29. echo "$str == " . date('l dS o F Y h:i:s A', $timestamp);
  30. }
  31. ?>
  32. <?php
  33. echo strtotime("now"), " ";
  34. echo strtotime("10 September 2000"), " ";
  35. echo strtotime("+1 day"), " ";
  36. echo strtotime("+1 week"), " ";
  37. echo strtotime("+1 week 2 days 4 hours 2 seconds"), " ";
  38. echo strtotime("next Thursday"), " ";
  39. echo strtotime("last Monday"), " ";
  40. ?>

这是一个快速函数计算在一年期间,“工作天”,“工作日”是指那些没有周末,没有假期在$数组中指定的假日,实例代码如下:

  1. function get_working_days($to_date) {
  2. $holidays = array(
  3. 1 => array(10), //2011 ...
  4. 2 => array(11),
  5. 3 => array(21), //... 2011
  6. 4 => array(29,30), //2010 ...
  7. 5 => array(3,4,5),
  8. 6 => array(),
  9. 7 => array(19),
  10. 8 => array(11,12,13),
  11. 9 => array(20,23),
  12. 10 => array(11),
  13. 11 => array(3,23),
  14. 12 => array(23) //... 2010
  15. );
  16. for($to_date, $w = 0, $i = 0, $x = time(); $x < $to_date; $i++, $x = strtotime("+$i day")) {
  17. if(date("N",$x) < 6 &! in_array(date("j",$x),$holidays[date("n",$x)])) $w++;//开源代码phpfensi.com
  18. }
  19. return $w;
  20. }
  21. //Usage:
  22. echo get_working_days(strtotime("2011-01-08"));