/** * @param $format * @param $date * @param $y * @param $m * @param $d * @param $h * @param $i * @param $s * * @dataProvider provideJDateTimeFormats */ public function test_format_string_to_JDateTime($format, $date, $y, $m, $d, $h, $i, $s) { $j1 = JalaliParser::createJalaliFromFormat($format, $date, true); $j2 = JalaliParser::createJDateTimeFromFormat($format, $date); $j3 = new JDateTime($y, $m, $d, $h, $i, $s); $j4 = JDateTime::fromFormat($format, $date); $this->assertEquals($j3, $j1); $this->assertEquals($j3, $j2); $this->assertEquals($j3, $j4); }
protected function compareJDateTime($value, $parameters) { if (!is_string($value)) { return false; } $format = count($parameters) > 1 ? $parameters[1] : 'Y/m/d h:i:s'; $baseDate = count($parameters) ? JDateTime::fromFormat($format, $parameters[0]) : JDateTime::fromDateTime(new DateTime()); try { $jDateTime = JDateTime::fromFormat($format, $value); $dateCompare = $jDateTime->toInteger() - $baseDate->toInteger(); if ($dateCompare) { return $dateCompare; } return $jDateTime->secondsSinceMidnight() - $baseDate->secondsSinceMidnight(); } catch (\Exception $e) { return false; } }