/** * @covers Xmlnuke\Util\DateUtil::Validate * @todo Implement testValidate(). */ public function testValidate() { $date1 = '2014/01/30'; $status = DateUtil::Validate($date1, DATEFORMAT::YMD); $this->assertTrue($status); $date1 = '2014/01/30'; $status = DateUtil::Validate($date1, DATEFORMAT::DMY); $this->assertFalse($status); $date1 = '2014-01-30'; $status = DateUtil::Validate($date1, DATEFORMAT::YMD); // Different separators ('-' and '/') $this->assertFalse($status); $date1 = '2001/02/29'; $status = DateUtil::Validate($date1, DATEFORMAT::YMD); $this->assertFalse($status); $date1 = '2000/02/29'; $status = DateUtil::Validate($date1, DATEFORMAT::YMD); $this->assertTrue($status); $date1 = '2000/02/29 23:45:59'; $status = DateUtil::Validate($date1, DATEFORMAT::YMD, '/'); $this->assertTrue($status); $date1 = '2000/02/29 23:45'; $status = DateUtil::Validate($date1, DATEFORMAT::YMD); $this->assertTrue($status); }
public static function GetDateParts($date, $dateFormat = DATEFORMAT::YMD, $separator = "/") { if (!DateUtil::Validate($date, $dateFormat, $separator, true)) { if ($dateFormat == DATEFORMAT::DMY || $dateFormat == DATEFORMAT::MDY) { $reg = array("00", "00", "0000", "00", "00", "00"); } else { $reg = array("0000", "00", "00", "00", "00", "00"); } } else { $reg = preg_split("/[^0-9]/", $date); while (sizeof($reg) < 6) { $reg[sizeof($reg)] = '00'; } } $datePart = array(); if ($dateFormat == DATEFORMAT::DMY || $dateFormat == DATEFORMAT::MDY) { $datePart[DateParts::DATE] = sprintf("%02d{$separator}%02d{$separator}%04d", $reg[0], $reg[1], $reg[2]); } else { $datePart[DateParts::DATE] = sprintf("%04d{$separator}%02d{$separator}%02d", $reg[0], $reg[1], $reg[2]); } switch ($dateFormat) { case DATEFORMAT::DMY: $datePart[DateParts::DAY] = $reg[0]; $datePart[DateParts::MONTH] = $reg[1]; $datePart[DateParts::YEAR] = $reg[2]; break; case DATEFORMAT::MDY: $datePart[DateParts::DAY] = $reg[1]; $datePart[DateParts::MONTH] = $reg[0]; $datePart[DateParts::YEAR] = $reg[2]; break; default: $datePart[DateParts::DAY] = $reg[2]; $datePart[DateParts::MONTH] = $reg[1]; $datePart[DateParts::YEAR] = $reg[0]; break; } $datePart[DateParts::TIME] = sprintf("%02d:%02d:%02d", $reg[3], $reg[4], $reg[5]); $datePart[DateParts::HOUR] = sprintf("%02d", $reg[3]); $datePart[DateParts::MINUTE] = sprintf("%02d", $reg[4]); $datePart[DateParts::SECOND] = sprintf("%02d", $reg[5]); $datePart[DateParts::FULL] = $datePart[DateParts::DATE] . " " . $datePart[DateParts::TIME]; return $datePart; }