iso8601_to_timestamp

Convert ISO 8601 compliant date string to unix timestamp.

Description

iso8601_to_timestamp( (string) $datestr ); 

Parameters (1)

0. $datestr (string)
ISO 8601 compliant date string

Usage

  1. if ( !function_exists( 'iso8601_to_timestamp' ) ) { 
  2. require_once ABSPATH . PLUGINDIR . 'woocommerce-globalpay/lib/class.nusoap_base.php'; 
  3.  
  4. // ISO 8601 compliant date string 
  5. $datestr = ''; 
  6.  
  7. // NOTICE! Understand what this does before running. 
  8. $result = iso8601_to_timestamp($datestr); 
  9.  

Defined (2)

The function is defined in the following location(s).

/lib/class.nusoap_base.php  
  1. function iso8601_to_timestamp($datestr) { 
  2. $pattern = '/'. 
  3. '([0-9]{4})-'. // centuries & years CCYY- 
  4. '([0-9]{2})-'. // months MM- 
  5. '([0-9]{2})'. // days DD 
  6. 'T'. // separator T 
  7. '([0-9]{2}):'. // hours hh: 
  8. '([0-9]{2}):'. // minutes mm: 
  9. '([0-9]{2})(\.[0-9]+)?'. // seconds ss.ss... 
  10. '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's 
  11. '/'; 
  12. if(preg_match($pattern, $datestr, $regs)) { 
  13. // not utc 
  14. if($regs[8] != 'Z') { 
  15. $op = substr($regs[8], 0, 1); 
  16. $h = substr($regs[8], 1, 2); 
  17. $m = substr($regs[8], strlen($regs[8])-2, 2); 
  18. if($op == '-') { 
  19. $regs[4] = $regs[4] + $h; 
  20. $regs[5] = $regs[5] + $m; 
  21. } elseif($op == '+') { 
  22. $regs[4] = $regs[4] - $h; 
  23. $regs[5] = $regs[5] - $m; 
  24. return gmmktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]); 
  25. // return strtotime("$regs[1]-$regs[2]-$regs[3] $regs[4]:$regs[5]:$regs[6]Z"); 
  26. } else { 
  27. return false; 
/lib/nusoap.php  
  1. function iso8601_to_timestamp($datestr) { 
  2. $pattern = '/'. 
  3. '([0-9]{4})-'. // centuries & years CCYY- 
  4. '([0-9]{2})-'. // months MM- 
  5. '([0-9]{2})'. // days DD 
  6. 'T'. // separator T 
  7. '([0-9]{2}):'. // hours hh: 
  8. '([0-9]{2}):'. // minutes mm: 
  9. '([0-9]{2})(\.[0-9]+)?'. // seconds ss.ss... 
  10. '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's 
  11. '/'; 
  12. if(preg_match($pattern, $datestr, $regs)) { 
  13. // not utc 
  14. if($regs[8] != 'Z') { 
  15. $op = substr($regs[8], 0, 1); 
  16. $h = substr($regs[8], 1, 2); 
  17. $m = substr($regs[8], strlen($regs[8])-2, 2); 
  18. if($op == '-') { 
  19. $regs[4] = $regs[4] + $h; 
  20. $regs[5] = $regs[5] + $m; 
  21. } elseif($op == '+') { 
  22. $regs[4] = $regs[4] - $h; 
  23. $regs[5] = $regs[5] - $m; 
  24. return gmmktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]); 
  25. // return strtotime("$regs[1]-$regs[2]-$regs[3] $regs[4]:$regs[5]:$regs[6]Z"); 
  26. } else { 
  27. return false;