From c23c7a8da1f5c57d2fee4a4b822bf1a552523112 Mon Sep 17 00:00:00 2001 From: kmcmurtrey Date: Thu, 21 Jan 2016 17:25:32 -0500 Subject: [PATCH 1/4] First try --- src/date_formatter.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/date_formatter.php diff --git a/src/date_formatter.php b/src/date_formatter.php new file mode 100644 index 0000000..80f2ff6 --- /dev/null +++ b/src/date_formatter.php @@ -0,0 +1,22 @@ +format('Y-m-d') !== $date) { +// return ''; +// } else { +// return $newDate->format('l\, F jS Y'); +// } +//} + +function date_formatter($date) { +// $validDate = checkdate ($date); + $newDate = new DateTime($date); + + if ($newDate->createFromFormat('Y-m-d', $date) === false || $newDate->getLastErrors()['warning_count'] > 0) { + return ''; + } else { + return $newDate->format('l\, F jS Y'); + } +} \ No newline at end of file From 2e4154bf9ea1b1b98ba45340d65de76efa9495e5 Mon Sep 17 00:00:00 2001 From: Korey McMurtrey Date: Thu, 21 Jan 2016 18:47:21 -0500 Subject: [PATCH 2/4] Cleaned up code --- src/date_formatter.php | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/date_formatter.php b/src/date_formatter.php index 80f2ff6..1dc2246 100644 --- a/src/date_formatter.php +++ b/src/date_formatter.php @@ -1,14 +1,6 @@ format('Y-m-d') !== $date) { -// return ''; -// } else { -// return $newDate->format('l\, F jS Y'); -// } -//} + +/*|| $newDate->getLastErrors()['warning_count'] > 0*/ function date_formatter($date) { // $validDate = checkdate ($date); From e3908f2ad8d8150f447e75b2139739321c35f64a Mon Sep 17 00:00:00 2001 From: Korey McMurtrey Date: Thu, 21 Jan 2016 19:53:54 -0500 Subject: [PATCH 3/4] Revised code in class --- src/date_formatter.php | 45 +++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/src/date_formatter.php b/src/date_formatter.php index 1dc2246..99d4cef 100644 --- a/src/date_formatter.php +++ b/src/date_formatter.php @@ -2,13 +2,44 @@ /*|| $newDate->getLastErrors()['warning_count'] > 0*/ +//function date_formatter($date) { +// if (strtotime($date) === false) { +// return ''; +// } +// +// $newDate = new DateTime($date); +// +// if ($newDate->createFromFormat('Y-m-d', $date) === false || $newDate->getLastErrors()['warning_count'] > 0) { +// return ''; +// } else { +// return $newDate->format('l\, F jS Y'); +// } +//} + + + function date_formatter($date) { -// $validDate = checkdate ($date); - $newDate = new DateTime($date); + $array = explode('-', $date); + + if (count($array) === 3) { + $validDate = checkdate ((int)$array[1], (int)$array[2], (int)$array[0]); + } else { + return ''; + } + + if (strtotime($date) === false) { + return 'str'; + } + + if ($validDate) { + $newDate = new DateTime($date); - if ($newDate->createFromFormat('Y-m-d', $date) === false || $newDate->getLastErrors()['warning_count'] > 0) { - return ''; - } else { - return $newDate->format('l\, F jS Y'); - } + if ($newDate->createFromFormat('Y-m-d', $date) === false || $newDate->getLastErrors()['warning_count'] > 0) { + return ''; + } else { + return $newDate->format('l\, F jS Y'); + } + } + + return 'no'; } \ No newline at end of file From 1a40007f5d60b43a42a78cd6aa33815286f6f17f Mon Sep 17 00:00:00 2001 From: kmcmurtrey Date: Tue, 26 Jan 2016 22:23:48 -0500 Subject: [PATCH 4/4] All tests pass except 1776 test data fails with strtotime() --- src/date_formatter.php | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/date_formatter.php b/src/date_formatter.php index 99d4cef..8c6b12d 100644 --- a/src/date_formatter.php +++ b/src/date_formatter.php @@ -6,9 +6,9 @@ // if (strtotime($date) === false) { // return ''; // } -// -// $newDate = new DateTime($date); -// +// +// $newDate = new DateTime($date); +// // if ($newDate->createFromFormat('Y-m-d', $date) === false || $newDate->getLastErrors()['warning_count'] > 0) { // return ''; // } else { @@ -20,26 +20,28 @@ function date_formatter($date) { $array = explode('-', $date); - + if (count($array) === 3) { $validDate = checkdate ((int)$array[1], (int)$array[2], (int)$array[0]); + + } else { return ''; } - - if (strtotime($date) === false) { - return 'str'; + + if (strtotime($date) === false || !$validDate) { + return ''; } - + if ($validDate) { - $newDate = new DateTime($date); - + $newDate = new DateTime($date); + if ($newDate->createFromFormat('Y-m-d', $date) === false || $newDate->getLastErrors()['warning_count'] > 0) { return ''; } else { return $newDate->format('l\, F jS Y'); } } - - return 'no'; -} \ No newline at end of file + + return ''; +}