Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. php > echo strtotime("2010-12-07T23:00:00.000Z");
  2. 1291762800
  3. echo date('c', 1291762800);
  4. 2010-12-08T00:00:00+01:00
  5. php > var_dump(DateTime::createFromFormat('c', "2010-12-07T23:00:00.000Z"));
  6. bool(false)
  7. php > var_dump(DateTime::createFromFormat(DateTime::ISO8601, "2010-12-07T23:00:00.000Z"));
  8. bool(false)
  9.  
  10. // create ISO8601 dateTime
  11. $date = DateTime::createFromFormat(DateTime::ISO8601, '2016-07-27T19:30:00Z');
  12.  
  13. // set to user's timezone
  14. $date -> setTimeZone('Asia/Singapore');
  15.  
  16. echo $date -> format(DateTime::ISO8601);
  17. // prints '2016-07-28T03:30:00+0800'
  18.  
  19. DateTime::createFromFormat('Y-m-dTH:i:sP', $date)
  20.  
  21. <?php
  22.  
  23. $dates = array(
  24. "2010-12-07T23:00:00.000Z",
  25. "2010-12-07T23:00:00",
  26. "2010-12-07T23:00:00Z",
  27. "2010-12-07T23:00:00+01:00",
  28. (new DateTime("now"))->format(DATE_ATOM)
  29. );
  30.  
  31. foreach($dates as $d) {
  32.  
  33. $res = DateTime::createFromFormat(DATE_ATOM, $d);
  34.  
  35. echo "try $d: n";
  36. var_dump($res);
  37. echo "nn";
  38. }
  39.  
  40. ?>
  41.  
  42. <?php
  43.  
  44. function parse_iso_8601($iso_8601_string) {
  45. $results = array();
  46. $results[] = DateTime::createFromFormat("Y-m-dTH:i:s",$iso_8601_string);
  47. $results[] = DateTime::createFromFormat("Y-m-dTH:i:s.u",$iso_8601_string);
  48. $results[] = DateTime::createFromFormat("Y-m-dTH:i:s.uP",$iso_8601_string);
  49. $results[] = DateTime::createFromFormat("Y-m-dTH:i:sP",$iso_8601_string);
  50. $results[] = DateTime::createFromFormat(DATE_ATOM,$iso_8601_string);
  51.  
  52. $success = array_values(array_filter($results));
  53. if(count($success) > 0) {
  54. return $success[0];
  55. }
  56. return false;
  57. }
  58.  
  59. // Test
  60. $dates = array(
  61. "2010-12-07T23:00:00.000Z",
  62. "2010-12-07T23:00:00",
  63. "2010-12-07T23:00:00Z",
  64. "2010-12-07T23:00:00+01:00",
  65. (new DateTime("now"))->format(DATE_ATOM)
  66. );
  67.  
  68. foreach($dates as $d) {
  69.  
  70. $res = parse_iso_8601($d);
  71.  
  72. echo "try $d: n";
  73. var_dump($res);
  74. echo "nn";
  75. }
  76.  
  77. ?>
  78.  
  79. Y-m-dTH:i:s.uO
  80.  
  81. $dateStr = '2015-04-29T11:42:56.000+0400'
  82. $ISO = 'Y-m-dTH:i:s.uO'
  83. $date = DateTime::createFromFormat($ISO, $dateStr)
  84.  
  85. $format = 'Y-m-dTH:i:s.u+';
  86. $value = '2017-09-21T10:11:19.026Z'; // jsDate.toUTCString();
  87. var_dump(DateTime::createFromFormat($format, $value));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement