/** * {@inheritdoc} */ public static function convert(Calends $cal) { $source = last(explode('\\', get_called_class())); $start = $source::createInstance(IntlTimeZone::getGMT(), static::$locale); $start->setTime(BC::mul($cal->getDate('unix'), 1000, 15)); $end = $source::createInstance(IntlTimeZone::getGMT(), static::$locale); $end->setTime(BC::mul($cal->getEndDate('unix'), 1000, 15)); return ['start' => $start, 'duration' => new DateInterval("PT{$cal->getDuration(0)}S"), 'end' => $end]; }
/** * @covers ::convert */ public function testConvert() { $test1 = Converter::convert(Calends::create(0, 'unix')); $this->assertEquals(['start' => Carbon::createFromTimestamp(0), 'duration' => \Carbon\CarbonInterval::seconds(0), 'end' => Carbon::createFromTimestamp(0)], $test1); $test2 = Converter::convert(Calends::create(['start' => 0, 'end' => 86400], 'unix')); $this->assertEquals(['start' => Carbon::createFromTimestamp(0), 'duration' => \Carbon\CarbonInterval::seconds(86400), 'end' => Carbon::createFromTimestamp(86400)], $test2); }
/** * {@inheritdoc} */ public static function fromInternal($stamp, $format = null) { if (!in_array(strtolower($format), ['jd', 'gjd', 'geo', 'geo-centric', 'rjd', 'reduced', 'mjd', 'modified', 'tjd', 'truncated', 'djd', 'dublin', 'j1900', 'j2000', 'lilian', 'rata-die', 'mars-sol'])) { $format = 'gjd'; } $jdc = BC::add(BC::div(Calends::fromInternalToUnix($stamp), 86400, 18), 2440587.5, 18); if (in_array(strtolower($format), ['jd', 'gjd', 'geo', 'geo-centric'])) { $output = $jdc; } elseif (in_array(strtolower($format), ['rjd', 'reduced'])) { $output = BC::sub($jdc, '2400000', 18); } elseif (in_array(strtolower($format), ['mjd', 'modified'])) { $output = BC::sub($jdc, '2400000.5', 18); } elseif (in_array(strtolower($format), ['tjd', 'truncated'])) { $output = BC::intval(BC::sub($jdc, '2440000.5', 18), 0); } elseif (in_array(strtolower($format), ['djd', 'dublin', 'j1900'])) { $output = BC::sub($jdc, '2415020', 18); } elseif (in_array(strtolower($format), ['j2000'])) { $output = BC::sub($jdc, '2451545', 18); } elseif (in_array(strtolower($format), ['lilian'])) { $output = BC::intval(BC::sub($jdc, '2299159.5', 18), 0); } elseif (in_array(strtolower($format), ['rata-die'])) { $output = BC::intval(BC::sub($jdc, '1721424.5', 18), 0); } elseif (in_array(strtolower($format), ['mars-sol'])) { $output = BC::div(BC::sub($jdc, '2405522', 18), '1.02749', 18); } return $output; }
/** * @covers ::convert */ public function testConvert() { $test1 = Converter::convert(Calends::create(0, 'unix')); $this->assertEquals(['start' => new Moment('@0'), 'duration' => new \DateInterval('PT0S'), 'end' => new Moment('@0')], $test1); $test2 = Converter::convert(Calends::create(['start' => 0, 'end' => 86400], 'unix')); $this->assertEquals(['start' => new Moment('@0'), 'duration' => new \DateInterval('PT86400S'), 'end' => new Moment('@86400')], $test2); }
/** * @covers ::convert */ public function testConvert() { $dtClass = class_exists('\\DateTimeImmutable') ? '\\DateTimeImmutable' : '\\DateTime'; $test1 = Converter::convert(Calends::create(0, 'unix')); $this->assertEquals(new Period($dtClass::createFromFormat('U.u', '0.000000'), $dtClass::createFromFormat('U.u', '0.000000')), $test1); $test2 = Converter::convert(Calends::create(['start' => 0, 'end' => 86400], 'unix')); $this->assertEquals(new Period($dtClass::createFromFormat('U.u', '0.000000'), $dtClass::createFromFormat('U.u', '86400.000000')), $test2); }
/** * @covers ::convert */ public function testConvert() { if (!class_exists('\\DateTimeImmutable')) { return; } $test1 = Converter::convert(Calends::create(0, 'unix')); $this->assertEquals(['start' => new DateTimeImmutable('@0'), 'duration' => new DateInterval('PT0S'), 'end' => new DateTimeImmutable('@0')], $test1); $test2 = Converter::convert(Calends::create(['start' => 0, 'end' => 86400], 'unix')); $this->assertEquals(['start' => new DateTimeImmutable('@0'), 'duration' => new DateInterval('PT86400S'), 'end' => new DateTimeImmutable('@86400')], $test2); }
/** * @covers ::convert */ public function testConvert() { if (!class_exists('\\IntlCalendar')) { return; } $date1 = IntlGregorianCalendar::createInstance(); $date1->clear(); $date2 = IntlGregorianCalendar::createInstance(); $date2->setTime(86400); $test1 = Converter::convert(Calends::create(0, 'unix')); $this->assertEquals(['start' => $date1, 'duration' => new \DateInterval('PT0S'), 'end' => $date1], $test1); $test2 = Converter::convert(Calends::create(['start' => 0, 'end' => 86400], 'unix')); $this->assertEquals(['start' => $date1, 'duration' => new \DateInterval('PT86400S'), 'end' => $date2], $test2); }
/** * @covers ::convert */ public function testConvert() { if (!class_exists('\\IntlCalendar')) { return; } $date1 = IntlCalendar::createInstance(IntlTimeZone::getGMT(), 'en_US@calendar=persian'); $date1->setTime(0); $date2 = IntlCalendar::createInstance(IntlTimeZone::getGMT(), 'en_US@calendar=persian'); $date2->setTime(86400); Converter::$locale = 'en_US@calendar=persian'; $test1 = Converter::convert(Calends::create(0, 'unix')); $this->assertEquals(['start' => $date1, 'duration' => new \DateInterval('PT0S'), 'end' => $date1], $test1); $test2 = Converter::convert(Calends::create(['start' => 0, 'end' => 86400], 'unix')); $this->assertEquals(['start' => $date1, 'duration' => new \DateInterval('PT86400S'), 'end' => $date2], $test2); }
/** * {@inheritdoc} */ public static function convert(Calends $cal) { $source = @array_pop(explode('\\', get_called_class())); return ['start' => $source::fromDateTime(\DateTime::createFromFormat('U.u', rtrim(rtrim($cal->getDate('unix'), '0'), '.'))), 'duration' => new DateInterval("PT{$cal->getDuration()}S"), 'end' => $source::fromDateTime(\DateTime::createFromFormat('U.u', rtrim(rtrim($cal->getEndDate('unix'), '0'), '.')))]; }
/** * {@inheritdoc} */ public static function offset($stamp, $offset) { return Calends::toInternalFromUnix(date_create_from_format('U.u', bcadd(0, Calends::fromInternalToUnix($stamp), 6))->modify($offset)->format('U.u')); }
/** * {@inheritdoc} */ public static function fromInternal($stamp, $format = null) { $format = is_null($format) ? 18 : BC::max([BC::min([$format, 18], 0), 0], 0); return BC::round(Calends::fromInternalToUnix($stamp), $format); }
/** * {@inheritdoc} */ public static function convert(Calends $cal) { return ['start' => Source::createFromFormat('U.u', BC::add($cal->getDate('unix'), 0, 6)), 'duration' => new DateInterval("PT{$cal->getDuration(0)}S"), 'end' => Source::createFromFormat('U.u', BC::add($cal->getEndDate('unix'), 0, 6))]; }
/** * {@inheritdoc} */ public static function fromInternal($stamp) { return bcadd(bcdiv(Calends::fromInternalToUnix($stamp), 86400), 2440587.5); }
/** * {@inheritdoc} */ public static function offset($stamp, $offset) { return Calends::toInternalFromUnix(bcadd(Calends::fromInternalToUnix($stamp), bcadd(Calends::fromInternalToUnix(static::toInternal($offset)), 0x4000000000000000))); }
/** * {@inheritdoc} */ public static function offset($stamp, $offset) { $date = date_create_from_format('U.u', BC::add(Calends::fromInternalToUnix($stamp), 0, 6))->modify($offset); return Calends::toInternalFromUnix($date->getTimestamp()); }
/** * {@inheritdoc} */ public static function offset($stamp, $offset) { return Calends::toInternalFromUnix(date_create_from_format('Y-m-d H:i:s.u P', date('Y-m-d H:i:s.u P', BC::round(Calends::fromInternalToUnix($stamp), 6)))->modify($offset)->format('U.u')); }
public static function getTimesByMode(RealClass $a, RealClass $b, $mode = 'start') { return parent::getTimesByMode($a, $b, $mode); }
/** * {@inheritdoc} */ public static function convert(Calends $cal) { $dtClass = class_exists('\\DateTimeImmutable') ? '\\DateTimeImmutable' : '\\DateTime'; return new Source($dtClass::createFromFormat('U.u', BC::add($cal->getDate('unix'), 0, 6)), $dtClass::createFromFormat('U.u', BC::add($cal->getEndDate('unix'), 0, 6))); }
/** * {@inheritdoc} */ public static function fromInternal($stamp) { return Calends::fromInternalToUnix($stamp); }
/** * {@inheritdoc} */ public static function convert(Calends $cal) { return new Source(DateTimeImmutable::createFromFormat('U.u', rtrim(rtrim($cal->getDate('unix'), '0'), '.')), DateTimeImmutable::createFromFormat('U.u', rtrim(rtrim($cal->getEndDate('unix'), '0'), '.'))); }
/** * {@inheritdoc} */ public static function fromInternal($stamp) { $date = Calends::fromInternalToUnix($stamp); return date_create(jdtojulian(bcadd(bcdiv($date, 86400), 2440587.5)))->format('D, d M Y') . ' ' . date_create_from_format('U.u', bcadd(0, $date, 6))->format('H:i:s.u P'); }
/** * {@inheritdoc} */ public function offset($stamp, $offset) { return Calends::toInternalFromUnix($this->unitsToTS($this->addUnits($this->tsToUnits(Calends::fromInternalToUnix($stamp)), $this->parseOffset($offset)))); }
/** * {@inheritdoc} */ public static function convert(Calends $cal) { return ['start' => Source::createFromTimestamp($cal->getDate('unix')), 'duration' => CarbonInterval::seconds($cal->getDuration(0)), 'end' => Source::createFromTimestamp($cal->getEndDate('unix'))]; }
/** * {@inheritdoc} */ public static function fromInternal($stamp, $format = null) { $date = Calends::fromInternalToUnix($stamp); return date_create_from_format('n/j/Y', \JDToJulian(BC::add(BC::div($date, 86400, 18), 2440587.5, 0)))->format('D, d M Y') . ' ' . date_create_from_format('U.u', BC::add(0, $date, 6))->format('H:i:s.u P'); }