/** * @param $quarter * @param $year * @param string $timeZoneString * * @return MomentPeriodVo * @throws MomentException */ public static function getQuarterPeriod($quarter, $year, $timeZoneString = 'UTC') { switch ($quarter) { case 1: $startMonth = 1; $endMonth = 3; break; case 2: $startMonth = 4; $endMonth = 6; break; case 3: $startMonth = 7; $endMonth = 9; break; case 4: $startMonth = 10; $endMonth = 12; break; default: throw new MomentException('Invalid quarter. The range of quarters is 1 - 4. You asked for: ' . $quarter); } // set start $start = new Moment(); $start->setTimezone($timeZoneString)->setYear($year)->setMonth($startMonth)->setDay(1)->setTime(0, 0, 0); // set end $end = new Moment(); $end->setTimezone($timeZoneString)->setYear($year)->setMonth($endMonth)->setDay($end->format('t'))->setTime(23, 59, 59); // set period vo $momentPeriodVo = new MomentPeriodVo(); return $momentPeriodVo->setInterval($quarter)->setStartDate($start)->setEndDate($end); }
public static function from(Moment $moment) { $seconds = floor($moment->ms() / 1000); $milliseconds = $moment->ms() - $seconds * 1000; $microseconds = $milliseconds * 1000; return new \MongoDate($seconds, $microseconds); }
/** * @covers Moment\Moment::resetDateTime */ public function testMoment() { $data = '1923-12-31 12:30:00'; $m = new Moment($data); $this->assertEquals('1923-12-31T12:30:00+0000', $m->format()); $data = '1923-12-31T12:30:00.000'; $m = new Moment($data); $this->assertEquals('1923-12-31T12:30:00+0000', $m->format()); $data = '1923-12-31T12:30:00.123'; $m = new Moment($data); $this->assertEquals('1923-12-31T12:30:00+0000', $m->format()); $data = '1923-12-31T12:30:00.123+02:00'; $m = new Moment($data); $this->assertEquals('1923-12-31T12:30:00+0200', $m->format()); $data = '1923-12-31T12:30:00.123+0200'; $m = new Moment($data); $this->assertEquals('1923-12-31T12:30:00+0200', $m->format()); $data = '1923-12-31T12:30:00.123Z'; $m = new Moment($data); $this->assertEquals('1923-12-31T12:30:00+0000', $m->format()); $data = '1923-12-31T12:30:00.123Europe/Warsaw'; $m = new Moment($data); $this->assertEquals('1923-12-31T12:30:00+0100', $m->format()); $data = '1923-12-31T12:30:00.123Europe/Warsaw'; $m = new Moment($data, 'UTC'); $this->assertEquals('1923-12-31T12:30:00+0100', $m->format()); $data = '1923-12-31T12:30:00.123UTC'; $m = new Moment($data, 'Europe/Warsaw'); $this->assertEquals('1923-12-31T12:30:00+0000', $m->format()); }
public function testCorrectDate() { $string = '2015-06-14 20:46:22'; $moment = new Moment($string, 'Europe/Berlin'); $this->assertEquals('14. Juni', $moment->format('d. F')); $string = '2015-03-08T15:14:53-0500'; $moment = new Moment($string, 'Europe/Berlin'); $this->assertEquals('08. März', $moment->format('d. F')); }
public function testMinutes() { $past = new Moment('2016-01-03 16:17:07', 'Europe/Berlin'); $relative = $past->from('2016-01-03 16:34:07'); $this->assertEquals('17 minut temu', $relative->getRelative()); $relative = $past->from('2016-01-03 16:40:07'); $this->assertEquals('23 minuty temu', $relative->getRelative()); $relative = $past->from('2016-01-03 16:30:07'); $this->assertEquals('13 minut temu', $relative->getRelative()); }
public static function write($msg) { if (file_exists(LOG_DIRECTORY . LOG_FILE)) { $current = file_get_contents(LOG_DIRECTORY . LOG_FILE); } $time = new Moment(); $timeStamp = $time->nowTimestamp(); $msg = $timeStamp . ': ' . $msg; $file = fopen(LOG_DIRECTORY . LOG_FILE, "w"); if (isset($current)) { fwrite($file, $current); } fwrite($file, $msg . "\r\n"); fclose($file); }
/** * @param bool $withTime * * @return string */ public function calendar($withTime = true) { $momentNow = new Moment('now', $this->getTimezoneString()); $momentFromVo = $this->cloning()->startOf('day')->from($momentNow->startOf('day')); $diff = $momentFromVo->getDays(); // handle time string $renderedTimeString = MomentLocale::renderLocaleString(array('calendar', 'withTime'), array($this)); $addTime = false; // apply cases if ($diff > 7) { $localeKeys = array('calendar', 'default'); } elseif ($diff > 1) { $localeKeys = array('calendar', 'lastWeek'); $addTime = true; } elseif ($diff > 0) { $localeKeys = array('calendar', 'lastDay'); $addTime = true; } elseif ($diff == 0) { $localeKeys = array('calendar', 'sameDay'); $addTime = true; } elseif ($diff == -1) { $localeKeys = array('calendar', 'nextDay'); $addTime = true; } elseif ($diff > -7) { $localeKeys = array('calendar', 'sameElse'); $addTime = true; } else { $localeKeys = array('calendar', 'default'); } // render format $format = MomentLocale::renderLocaleString($localeKeys, array($this)); // add time if valid if ($addTime && $withTime === true) { $format .= ' ' . $renderedTimeString; } return $this->format($format); }
public function testLocaleDow() { //Test en_GB for Monday start of week Moment::setLocale('en_GB'); //Expected Values $gb_start = new Moment('2015-04-27T00:00:00Z'); $gb_end = new Moment('2015-05-03T23:59:59Z'); //Current date: Middle of the week $gb = new Moment('2015-04-28T10:29:00Z'); $this->assertTrue($gb->cloning()->startOf('week')->isSame($gb_start)); $this->assertTrue($gb->cloning()->endOf('week')->isSame($gb_end)); //Current Date: Beginning of the week $gb = new Moment('2015-04-27T10:29:00Z'); $this->assertTrue($gb->cloning()->startOf('week')->isSame($gb_start)); $this->assertTrue($gb->cloning()->endOf('week')->isSame($gb_end)); //Current Date: End of week $gb = new Moment('2015-05-03T10:29:00Z'); $this->assertTrue($gb->cloning()->startOf('week')->isSame($gb_start)); $this->assertTrue($gb->cloning()->endOf('week')->isSame($gb_end)); //Test en_US for Sunday start of week Moment::setLocale('en_US'); //Expected Values $us_start = new Moment('2015-04-26T00:00:00Z'); $us_end = new Moment('2015-05-02T23:59:59Z'); //Current date: Middle of the week $us = new Moment('2015-04-28T10:29:00Z'); $this->assertTrue($us->cloning()->startOf('week')->isSame($us_start)); $this->assertTrue($us->cloning()->endOf('week')->isSame($us_end)); //Current Date: Beginning of the week $us = new Moment('2015-04-26T10:29:00Z'); $this->assertTrue($us->cloning()->startOf('week')->isSame($us_start)); $this->assertTrue($us->cloning()->endOf('week')->isSame($us_end)); //Current Date: End of week $us = new Moment('2015-05-02T10:29:00Z'); $this->assertTrue($us->cloning()->startOf('week')->isSame($us_start)); $this->assertTrue($us->cloning()->endOf('week')->isSame($us_end)); }
<p class="indent-1">Format var_dump for readability:</p> <p class="indent-1"> <?php $a = new stdCLass(); $a->firtName = "John"; $a->lastName = "Doe"; Debug::pVarDump($a); ?> </p> <h2>Dates and Times</h2> <p>Mutt-PHP supports a variety of time() manipulations through the moment class, most of which are just obfuscations of date() broken into a different syntax, with a little modularity to faciliate date math.</p> <p>If we assume that <code>$moment = new Moment()</code>, then:</p> <pre> <?php $moment = new Moment(); echo '<p>' . $moment->nowMMDDYYYY() . ' //echo $moment->nowMMDDYYYY();</p>'; echo '<p>' . $moment->nowYYYYMMDD() . ' //echo $moment->nowYYYYMMDD();</p>'; echo '<p>' . $moment->nowTimestamp() . ' //echo $moment->nowTimestamp();</p>'; ?> </pre> <h2>Emailing</h2> <p>Mutt-PHP uses PHPMailer as a more robust alternative to mail(). The package is included as a composer dependency. Gor more infomation see <a href="https://github.com/PHPMailer/PHPMailer">PHPMailer on github</a>. Basic useage: </p> <pre> $mail = new PHPMailer; //$mail->SMTPDebug = 3; // Enable verbose debug output $mail->isSMTP(); // Set mailer to use SMTP
public function testHirbodIssueLocaleDate002() { // @see: https://github.com/fightbulc/moment.php/issues/61 $moment = new Moment('2016-01-03 16:17:07', 'Europe/Berlin'); $this->assertEquals('03. Dezember', $moment->subtractMonths(1)->format('d. F')); }
$m = new Moment(); $response['test01'] = $m->format(); $m = new Moment('2012-05-15T12:30:00', 'CET'); $response['test02'] = $m->add('hours', 2)->format(); $m = new Moment('2012-05-15T12:30:00', 'CET'); $response['test03'] = $m->subtract('days', 7)->subtract('minutes', 15)->format(); $m = new Moment('2012-05-12T15:00:00'); $result = $m->from('2011-09-25T10:00:00'); $response['test04.01'] = $result['seconds']; $response['test04.02'] = $result['minutes']; $response['test04.03'] = $result['hours']; $response['test04.04'] = $result['days']; $response['test04.05'] = $result['weeks']; $m = new Moment('2013-02-01T07:00:00'); $result = $m->fromNow(); $response['test05.01'] = $result['seconds']; $response['test05.02'] = $result['minutes']; $response['test05.03'] = $result['hours']; $response['test05.04'] = $result['days']; $response['test05.05'] = $result['weeks']; $m = new Moment('2012-04-25T03:00:00', 'CET'); $response['test06.01'] = $m->format(); $response['test06.02'] = $m->setTimezone('UTC')->format(); $m = new Moment('2012-04-25T03:00:00', 'CET'); $response['test07'] = $m->format('l, dS F Y / H:i (e)'); // ############################################ $tmpl = join('', file('test.html')); foreach ($response as $key => $value) { $tmpl = str_replace('{{' . $key . '}}', $value, $tmpl); } echo $tmpl;
/** * @param $period * * @return MomentPeriodVo * @throws MomentException */ public function getPeriod($period) { switch ($period) { case 'week': $currentWeekDay = $this->format('N'); $interval = $this->format('W'); $start = new Moment('@' . $this->format('U')); $start->setTimezone($this->getTimezoneString())->subtractDays($currentWeekDay - 1)->setTime(0, 0, 0); $end = new Moment('@' . $this->format('U')); $end->setTimezone($this->getTimezoneString())->addDays(7 - $currentWeekDay)->setTime(23, 59, 59); break; // ------------------------------ // ------------------------------ case 'month': $maxMonthDays = $this->format('t'); $currentMonthDay = $this->format('j'); $interval = $this->getMonth(); $start = new Moment('@' . $this->format('U')); $start->setTimezone($this->getTimezoneString())->subtractDays($currentMonthDay - 1)->setTime(0, 0, 0); $end = new Moment('@' . $this->format('U')); $end->setTimezone($this->getTimezoneString())->addDays($maxMonthDays - $currentMonthDay)->setTime(23, 59, 59); break; // ------------------------------ // ------------------------------ case 'quarter': $quarter = $this->getQuarter(); $momentPeriodVo = MomentHelper::getQuarterPeriod($quarter, $this->getYear(), $this->getTimezoneString()); $start = $momentPeriodVo->getStartDate(); $end = $momentPeriodVo->getEndDate(); $interval = $quarter; break; // ------------------------------ // ------------------------------ default: throw new MomentException("Period \"{$period}\" is not supported yet (supported are \"week\" and \"month\").", 500); } $momentPeriodVo = new MomentPeriodVo(); return $momentPeriodVo->setRefDate($this)->setInterval($interval)->setStartDate($start)->setEndDate($end); }
public function testIsBetween() { $l = new Moment('2014-01-01T10:00:00Z'); $r = new Moment('2014-01-01T12:00:00Z'); $n = $l->cloning(); $this->assertTrue($n->isBetween($l, $r, true)); $this->assertFalse($n->isBetween($l, $r, false)); $n = $r->cloning(); $this->assertTrue($n->isBetween($l, $r, true)); $this->assertFalse($n->isBetween($l, $r, false)); //Minutes $l = new Moment('2014-01-01T10:30:30Z'); $r = new Moment('2014-01-01T12:30:30Z'); $n = new Moment('2014-01-01T10:30:00Z'); $this->assertFalse($n->isBetween($l, $r, true)); $n = new Moment('2014-01-01T12:30:45Z'); $this->assertFalse($n->isBetween($l, $r, true)); $n = new Moment('2014-01-01T10:30:00Z'); $this->assertTrue($n->isBetween($l, $r, true, 'minute')); $n = new Moment('2014-01-01T12:30:45Z'); $this->assertTrue($n->isBetween($l, $r, true, 'minute')); //Hour $n = new Moment('2014-01-01T10:29:00Z'); $this->assertFalse($n->isBetween($l, $r, true, 'minute')); $n = new Moment('2014-01-01T12:31:45Z'); $this->assertFalse($n->isBetween($l, $r, true, 'minute')); $n = new Moment('2014-01-01T10:29:00Z'); $this->assertTrue($n->isBetween($l, $r, true, 'hour')); $n = new Moment('2014-01-01T12:31:45Z'); $this->assertTrue($n->isBetween($l, $r, true, 'hour')); //Day $n = new Moment('2014-01-01T09:29:00Z'); $this->assertFalse($n->isBetween($l, $r, true, 'hour')); $n = new Moment('2014-01-01T13:31:45Z'); $this->assertFalse($n->isBetween($l, $r, true, 'hour')); $n = new Moment('2014-01-01T10:29:00Z'); $this->assertTrue($n->isBetween($l, $r, true, 'day')); $n = new Moment('2014-01-01T12:31:45Z'); $this->assertTrue($n->isBetween($l, $r, true, 'day')); //Month $l = new Moment('2014-01-10T10:30:30Z'); $r = new Moment('2014-01-20T12:30:30Z'); $n = new Moment('2014-01-09T09:29:00Z'); $this->assertFalse($n->isBetween($l, $r, true, 'day')); $n = new Moment('2014-01-21T13:31:45Z'); $this->assertFalse($n->isBetween($l, $r, true, 'day')); $n = new Moment('2014-01-09T10:29:00Z'); $this->assertTrue($n->isBetween($l, $r, true, 'month')); $n = new Moment('2014-01-21T12:31:45Z'); $this->assertTrue($n->isBetween($l, $r, true, 'month')); //year $l = new Moment('2014-04-10T10:30:30Z'); $r = new Moment('2015-08-20T12:30:30Z'); $n = new Moment('2014-03-09T09:29:00Z'); $this->assertFalse($n->isBetween($l, $r, true, 'month')); $n = new Moment('2015-09-21T13:31:45Z'); $this->assertFalse($n->isBetween($l, $r, true, 'month')); $n = new Moment('2014-03-09T10:29:00Z'); $this->assertTrue($n->isBetween($l, $r, true, 'year')); $n = new Moment('2015-09-21T12:31:45Z'); $this->assertTrue($n->isBetween($l, $r, true, 'year')); }