next wave of nulldate fixes

This commit is contained in:
redmatrix
2016-09-26 18:16:43 -07:00
parent fb9544badd
commit cacdac16aa
4 changed files with 117 additions and 118 deletions

View File

@@ -85,15 +85,20 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d
if( ($s === '') || (! is_string($s)) )
$s = 'now';
if(is_null_date($s)) {
$d = new DateTime('0001-01-01 00:00:00', new DateTimeZone('UTC'));
return $d->format($fmt);
}
// Slight hackish adjustment so that 'zero' datetime actually returns what is intended
// otherwise we end up with -0001-11-30 ...
// add 32 days so that we at least get year 00, and then hack around the fact that
// months and days always start with 1.
if(substr($s,0,10) == '0000-00-00') {
$d = new DateTime($s . ' + 32 days', new DateTimeZone('UTC'));
return str_replace('1', '0', $d->format($fmt));
}
// if(substr($s,0,10) == '0000-00-00') {
// $d = new DateTime($s . ' + 32 days', new DateTimeZone('UTC'));
// return str_replace('1', '0', $d->format($fmt));
// }
try {
$from_obj = new DateTimeZone($from);