本文整理汇总了PHP中TimeSource类的典型用法代码示例。如果您正苦于以下问题:PHP TimeSource类的具体用法?PHP TimeSource怎么用?PHP TimeSource使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TimeSource类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testIsDateToLateForArbitraryDate
/**
* @dataProvider dataForTestIsDateToLateForArbitraryDate
*/
function testIsDateToLateForArbitraryDate($year, $month, $day, $days, $result)
{
$timeSource = new \TimeSource();
$timeSource->mock(2015, 03, 01, 10, 0, 0);
$eventSet = new EventRecurSetModel();
$eventSet->setTimeZoneName('Europe/London');
$newDate = new \DateTime();
$newDate->setDate($year, $month, $day);
$this->assertEquals($result, $eventSet->isDateToLateForArbitraryDate($newDate, $timeSource, $days));
}
开发者ID:radical-assembly,项目名称:OpenACalendar-Web-Core,代码行数:13,代码来源:EventRecurSetModelGetNewArbitraryEventTest.php
示例2: test3
function test3()
{
TimeSource::mock(2013, 3, 1, 9, 0, 0);
$event = new EventModel();
$event->setStartAt($this->mktime(2013, 3, 1, 19, 0, 0));
$event->setEndAt($this->mktime(2013, 3, 1, 21, 0, 0));
$eventSet = new EventRecurSetModel();
$eventSet->setTimeZoneName('Europe/London');
$newEvents = $eventSet->getNewWeeklyEvents($event, 60);
$this->assertTrue(count($newEvents) >= 8);
$this->assertEquals($this->mktime(2013, 3, 8, 19, 0, 0)->format('r'), $newEvents[0]->getStartAt()->format('r'));
$this->assertEquals($this->mktime(2013, 3, 8, 21, 0, 0)->format('r'), $newEvents[0]->getEndAt()->format('r'));
$this->assertEquals($this->mktime(2013, 3, 15, 19, 0, 0)->format('r'), $newEvents[1]->getStartAt()->format('r'));
$this->assertEquals($this->mktime(2013, 3, 15, 21, 0, 0)->format('r'), $newEvents[1]->getEndAt()->format('r'));
$this->assertEquals($this->mktime(2013, 3, 22, 19, 0, 0)->format('r'), $newEvents[2]->getStartAt()->format('r'));
$this->assertEquals($this->mktime(2013, 3, 22, 21, 0, 0)->format('r'), $newEvents[2]->getEndAt()->format('r'));
$this->assertEquals($this->mktime(2013, 3, 29, 19, 0, 0)->format('r'), $newEvents[3]->getStartAt()->format('r'));
$this->assertEquals($this->mktime(2013, 3, 29, 21, 0, 0)->format('r'), $newEvents[3]->getEndAt()->format('r'));
### at his point DST kicks in and since we are getting data times (in UTC) they shifn by an hour.
$this->assertEquals($this->mktime(2013, 4, 5, 18, 0, 0)->format('r'), $newEvents[4]->getStartAt()->format('r'));
$this->assertEquals($this->mktime(2013, 4, 5, 20, 0, 0)->format('r'), $newEvents[4]->getEndAt()->format('r'));
$this->assertEquals($this->mktime(2013, 4, 12, 18, 0, 0)->format('r'), $newEvents[5]->getStartAt()->format('r'));
$this->assertEquals($this->mktime(2013, 4, 12, 20, 0, 0)->format('r'), $newEvents[5]->getEndAt()->format('r'));
$this->assertEquals($this->mktime(2013, 4, 19, 18, 0, 0)->format('r'), $newEvents[6]->getStartAt()->format('r'));
$this->assertEquals($this->mktime(2013, 4, 19, 20, 0, 0)->format('r'), $newEvents[6]->getEndAt()->format('r'));
$this->assertEquals($this->mktime(2013, 4, 26, 18, 0, 0)->format('r'), $newEvents[7]->getStartAt()->format('r'));
$this->assertEquals($this->mktime(2013, 4, 26, 20, 0, 0)->format('r'), $newEvents[7]->getEndAt()->format('r'));
}
开发者ID:radical-assembly,项目名称:OpenACalendar-Web-Core,代码行数:28,代码来源:EventRecurSetModelGetNewWeeklyEventsTest.php
示例3: testWinterTime
function testWinterTime()
{
TimeSource::mock(2014, 5, 1, 7, 0, 0);
$user = new UserAccountModel();
$user->setEmail("test@jarofgreen.co.uk");
$user->setUsername("test");
$user->setPassword("password");
$userRepo = new UserAccountRepository();
$userRepo->create($user);
$site = new SiteModel();
$site->setTitle("Test");
$site->setSlug("test");
$siteRepo = new SiteRepository();
$siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting());
$event = new EventModel();
$event->setSummary("test");
$event->setDescription("test test");
$event->setStartAt($this->mktime(2014, 11, 10, 19, 0, 0, 'Europe/London'));
$event->setEndAt($this->mktime(2014, 11, 10, 21, 0, 0, 'Europe/London'));
$eventRepository = new EventRepository();
$eventRepository->create($event, $site, $user);
$event = $eventRepository->loadBySlug($site, $event->getSlug());
$this->assertEquals("test test", $event->getDescription());
$this->assertEquals("test", $event->getSummary());
$startAtShouldBe = $this->mktime(2014, 11, 10, 19, 0, 0, 'UTC');
$startAtIs = clone $event->getStartAt();
$startAtIs->setTimezone(new \DateTimeZone('UTC'));
$this->assertEquals($startAtShouldBe->format("c"), $startAtIs->format("c"));
}
示例4: test1
function test1()
{
TimeSource::mock(2014, 5, 1, 7, 0, 0);
$user = new UserAccountModel();
$user->setEmail("test@jarofgreen.co.uk");
$user->setUsername("test");
$user->setPassword("password");
$userRepo = new UserAccountRepository();
$userRepo->create($user);
$site = new SiteModel();
$site->setTitle("Test");
$site->setSlug("test");
$siteRepo = new SiteRepository();
$siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting());
$group = new GroupModel();
$group->setTitle("test");
$group->setDescription("test test");
$group->setUrl("http://www.group.com");
$groupRepo = new GroupRepository();
$groupRepo->create($group, $site, $user);
$event = new EventModel();
$event->setSummary("test");
$event->setDescription("test test");
$event->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0));
$event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0));
$event->setUrl("http://www.info.com");
$event->setTicketUrl("http://www.tickets.com");
$eventDupe = new EventModel();
$eventDupe->setSummary("test");
$eventDupe->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0));
$eventDupe->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0));
$eventRepository = new EventRepository();
$eventRepository->create($event, $site, $user, $group);
$eventRepository->create($eventDupe, $site, $user, $group);
TimeSource::mock(2014, 5, 1, 7, 1, 0);
$eventRepository->markDuplicate($eventDupe, $event);
$userAtEvent = new \models\UserAtEventModel();
$userAtEvent->setEventId($event->getId());
$userAtEvent->setUserAccountId($user->getId());
$userAtEvent->setIsPlanAttending(true);
$userAtEventRepo = new \repositories\UserAtEventRepository();
$userAtEventRepo->create($userAtEvent);
$curatedList = new CuratedListModel();
$curatedList->setTitle("test");
$curatedList->setDescription("test this!");
$clRepo = new CuratedListRepository();
$clRepo->create($curatedList, $site, $user);
$clRepo->addEventtoCuratedList($event, $curatedList, $user);
$tag = new TagModel();
$tag->setTitle("Test");
$tagRepo = new TagRepository();
$tagRepo->create($tag, $site, $user);
$tagRepo->addTagToEvent($tag, $event, $user);
## TEST
$this->assertNotNull($eventRepository->loadBySlug($site, $event->getSlug()));
## PURGE!
$eventRepository->purge($event);
## TEST
$this->assertNull($eventRepository->loadBySlug($site, $event->getSlug()));
}
示例5: test2
function test2()
{
$user = new UserAccountModel();
$user->setEmail("test@jarofgreen.co.uk");
$user->setUsername("test");
$user->setPassword("password");
$userRepo = new UserAccountRepository();
$userRepo->create($user);
$userAccountResetRepository = new UserAccountResetRepository();
# Test1: recently unused is null
TimeSource::mock(2013, 1, 1, 1, 0, 1);
$x = $userAccountResetRepository->loadRecentlyUnusedSentForUserAccountId($user->getId(), 180);
$this->assertNull($x);
# Test2: Request one
TimeSource::mock(2013, 1, 1, 1, 0, 2);
$userAccountReset = $userAccountResetRepository->create($user);
#Test 3: recently unused has one
TimeSource::mock(2013, 1, 1, 1, 0, 3);
$x = $userAccountResetRepository->loadRecentlyUnusedSentForUserAccountId($user->getId(), 180);
$this->assertTrue($x != null);
# Test4: days pass. recently unused is null again
TimeSource::mock(2013, 1, 5, 1, 0, 5);
$x = $userAccountResetRepository->loadRecentlyUnusedSentForUserAccountId($user->getId(), 180);
$this->assertNull($x);
}
示例6: setFeature
public function setFeature(SiteModel $site, \BaseSiteFeature $siteFeature, $value, UserAccountModel $userAccountModel = null)
{
try {
$this->app['db']->beginTransaction();
$changeMade = false;
$stat = $this->app['db']->prepare("SELECT is_on FROM site_feature_information WHERE site_id=:site_id AND extension_id =:extension_id AND feature_id =:feature_id");
$stat->execute(array('site_id' => $site->getId(), 'extension_id' => $siteFeature->getExtensionId(), 'feature_id' => $siteFeature->getFeatureId()));
if ($stat->rowCount() == 1) {
$data = $stat->fetch();
if ($data['is_on'] != $value) {
$stat = $this->app['db']->prepare("UPDATE site_feature_information SET is_on=:is_on " . " WHERE site_id=:site_id AND extension_id =:extension_id AND feature_id =:feature_id ");
$stat->execute(array('site_id' => $site->getId(), 'extension_id' => $siteFeature->getExtensionId(), 'feature_id' => $siteFeature->getFeatureId(), 'is_on' => $value ? 1 : 0));
$changeMade = true;
}
} else {
$stat = $this->app['db']->prepare("INSERT INTO site_feature_information (site_id, extension_id, feature_id, is_on) " . " VALUES(:site_id, :extension_id, :feature_id, :is_on) ");
$stat->execute(array('site_id' => $site->getId(), 'extension_id' => $siteFeature->getExtensionId(), 'feature_id' => $siteFeature->getFeatureId(), 'is_on' => $value ? 1 : 0));
$changeMade = true;
}
if ($changeMade) {
$stat = $this->app['db']->prepare("INSERT INTO site_feature_history (site_id, extension_id, feature_id, is_on, user_account_id, created_at) " . " VALUES (:site_id, :extension_id, :feature_id, :is_on, :user_account_id, :created_at)");
$stat->execute(array('site_id' => $site->getId(), 'extension_id' => $siteFeature->getExtensionId(), 'feature_id' => $siteFeature->getFeatureId(), 'is_on' => $value ? 1 : 0, 'user_account_id' => $userAccountModel ? $userAccountModel->getId() : null, 'created_at' => \TimeSource::getFormattedForDataBase()));
}
$this->app['db']->commit();
} catch (Exception $e) {
$this->app['db']->rollBack();
}
}
示例7: run
protected function run()
{
$siteRepoBuilder = new SiteRepositoryBuilder();
$siteRepoBuilder->setIsOpenBySysAdminsOnly(true);
$countCheck = 0;
$countSend = 0;
foreach ($siteRepoBuilder->fetchAll() as $site) {
$this->logVerbose("Site " . $site->getSlug());
$userRepoBuilder = new UserAccountRepositoryBuilder();
$userRepoBuilder->setIsOpenBySysAdminsOnly(true);
foreach ($userRepoBuilder->fetchAll() as $userAccount) {
$this->logVerbose("User " . $userAccount->getId());
++$countCheck;
$checkTime = \TimeSource::getDateTime();
$contentsToSend = array();
foreach ($this->app['extensions']->getExtensionsIncludingCore() as $extension) {
$contentsToSend = array_merge($contentsToSend, $extension->getUserNotifyContents($site, $userAccount));
}
if ($contentsToSend) {
$this->logVerbose("Found contents!");
++$countSend;
$this->makeSureHistoriesAreCorrect($contentsToSend);
$this->sendFor($site, $userAccount, $contentsToSend);
foreach ($contentsToSend as $contentToSend) {
$contentToSend->markNotificationSent($checkTime);
}
} else {
$this->logVerbose("found nothing");
}
}
}
return array('result' => 'ok', 'countCheck' => $countCheck, 'countSend' => $countSend);
}
示例8: test1
function test1()
{
\TimeSource::mock(2014, 1, 1, 0, 0, 0);
$this->addCountriesToTestDB();
$user = new UserAccountModel();
$user->setEmail("test@jarofgreen.co.uk");
$user->setUsername("test");
$user->setPassword("password");
$userRepo = new UserAccountRepository();
$userRepo->create($user);
$site = new SiteModel();
$site->setTitle("Test");
$site->setSlug("test");
$siteRepo = new SiteRepository();
$siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting());
$countryRepo = new CountryRepository();
$gb = $countryRepo->loadByTwoCharCode('GB');
$venue = new VenueModel();
$venue->setTitle("test");
$venue->setDescription("test test");
$venue->setCountryId($gb->getId());
\TimeSource::mock(2014, 1, 1, 1, 0, 0);
$venueRepo = new VenueRepository();
$venueRepo->create($venue, $site, $user);
\TimeSource::mock(2014, 1, 1, 2, 0, 0);
$venueRepo->delete($venue, $user);
$this->checkVenueInTest1($venueRepo->loadById($venue->getId()));
$this->checkVenueInTest1($venueRepo->loadBySlug($site, $venue->getSlug()));
$vrb = new VenueRepositoryBuilder();
$vrb->setIncludeDeleted(true);
$this->assertEquals(1, count($vrb->fetchAll()));
$vrb = new VenueRepositoryBuilder();
$vrb->setIncludeDeleted(false);
$this->assertEquals(0, count($vrb->fetchAll()));
}
示例9: __construct
function __construct(BaseValueReport $report, \DateTime $start, $end = null, $timeperiod = "P1M")
{
$this->end = $end ? $end : \TimeSource::getDateTime();
$this->report = $report;
$this->start = $start;
$this->timeperiod = $timeperiod;
}
示例10: testIntegration1
function testIntegration1()
{
$this->addCountriesToTestDB();
\TimeSource::mock(2014, 1, 1, 12, 0, 0);
$user = new UserAccountModel();
$user->setEmail("test@jarofgreen.co.uk");
$user->setUsername("test");
$user->setPassword("password");
$userRepo = new UserAccountRepository();
$userRepo->create($user);
$site = new SiteModel();
$site->setTitle("Test");
$site->setSlug("test");
$siteRepo = new SiteRepository();
$siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting());
$countryRepo = new CountryRepository();
$gb = $countryRepo->loadByTwoCharCode('GB');
## Create area
\TimeSource::mock(2014, 1, 1, 13, 0, 0);
$area = new AreaModel();
$area->setTitle("test");
$area->setDescription("test test");
$area->setCountryId($gb->getId());
$areaRepo = new AreaRepository();
$areaRepo->create($area, null, $site, $gb, $user);
## Edit area
\TimeSource::mock(2014, 1, 1, 14, 0, 0);
$area = $areaRepo->loadById($area->getId());
$area->setDescription("testy");
$areaRepo->edit($area, $user);
## Now save changed flags on these .....
$areaHistoryRepo = new AreaHistoryRepository();
$stat = $this->app['db']->prepare("SELECT * FROM area_history");
$stat->execute();
while ($data = $stat->fetch()) {
$areaHistory = new AreaHistoryModel();
$areaHistory->setFromDataBaseRow($data);
$areaHistoryRepo->ensureChangedFlagsAreSet($areaHistory);
}
## Now load and check
$historyRepo = new HistoryRepositoryBuilder();
$historyRepo->setIncludeEventHistory(false);
$historyRepo->setIncludeVenueHistory(false);
$historyRepo->setIncludeGroupHistory(false);
$historyRepo->setIncludeAreaHistory(true);
$histories = $historyRepo->fetchAll();
$this->assertEquals(2, count($histories));
#the edit
$this->assertEquals(FALSE, $histories[0]->getTitleChanged());
$this->assertEquals(true, $histories[0]->getDescriptionChanged());
$this->assertEquals(false, $histories[0]->getCountryIdChanged());
$this->assertEquals(false, $histories[0]->getParentAreaIdChanged());
$this->assertEquals(false, $histories[0]->getIsDeletedChanged());
#the create
$this->assertEquals(true, $histories[1]->getTitleChanged());
$this->assertEquals(true, $histories[1]->getDescriptionChanged());
$this->assertEquals(true, $histories[1]->getCountryIdChanged());
$this->assertEquals(false, $histories[1]->getParentAreaIdChanged());
$this->assertEquals(false, $histories[1]->getIsDeletedChanged());
}
示例11: timeSinceInWords
public function timeSinceInWords($data)
{
$diff = \TimeSource::time() - $data->getTimestamp();
if ($diff < 0) {
return "in the future";
} elseif ($diff == 0) {
return "now";
} elseif ($diff == 1) {
return "1 second ago";
} elseif ($diff < 60) {
return $diff . " seconds ago";
} elseif ($diff < 60 * 2) {
return "1 minute ago";
} elseif ($diff < 60 * 60) {
return round($diff / 60) . " minutes ago";
} elseif ($diff < 60 * 60 * 2) {
return "1 hour ago";
} elseif ($diff < 60 * 60 * 24) {
return round($diff / (60 * 60)) . " hours ago";
} elseif ($diff < 60 * 60 * 24 * 2) {
return "1 day ago";
} else {
return round($diff / (60 * 60 * 24)) . " days ago";
}
}
示例12: test1
function test1()
{
\TimeSource::mock(2014, 1, 1, 0, 0, 0);
$user1 = new UserAccountModel();
$user1->setEmail("test@jarofgreen.co.uk");
$user1->setUsername("test");
$user1->setPassword("password");
$user2 = new UserAccountModel();
$user2->setEmail("test2@jarofgreen.co.uk");
$user2->setUsername("test2");
$user2->setPassword("password");
$userRepo = new UserAccountRepository();
$userRepo->create($user1);
$userRepo->create($user2);
$site = new SiteModel();
$site->setTitle("Test");
$site->setSlug("test");
$siteRepo = new SiteRepository();
$siteRepo->create($site, $user1, array(), $this->getSiteQuotaUsedForTesting());
$group1 = new GroupModel();
$group1->setTitle("test1");
$group1->setDescription("test test");
$group1->setUrl("http://www.group.com");
$group2 = new GroupModel();
$group2->setTitle("test this looks similar");
$group2->setDescription("test test");
$group2->setUrl("http://www.group.com");
$groupRepo = new GroupRepository();
\TimeSource::mock(2014, 1, 1, 1, 0, 0);
$groupRepo->create($group1, $site, $user1);
$groupRepo->create($group2, $site, $user2);
$event = new EventModel();
$event->setSummary("test");
$event->setStartAt(getUTCDateTime(2014, 5, 10, 19, 0, 0));
$event->setEndAt(getUTCDateTime(2014, 5, 10, 21, 0, 0));
$eventRepository = new EventRepository();
$eventRepository->create($event, $site, $user1, $group2);
$uwgr = new UserWatchesGroupRepository();
// Test before
$erb = new \repositories\builders\EventRepositoryBuilder();
$erb->setGroup($group1);
$this->assertEquals(0, count($erb->fetchAll()));
$this->assertNull($uwgr->loadByUserAndGroup($user2, $group1));
$group2 = $groupRepo->loadById($group2->getId());
$this->assertFalse($group2->getIsDeleted());
$this->assertNull($group2->getIsDuplicateOfId());
// Mark
\TimeSource::mock(2014, 1, 1, 2, 0, 0);
$groupRepo->markDuplicate($group2, $group1, $user1);
// Test Duplicate
$erb = new \repositories\builders\EventRepositoryBuilder();
$erb->setGroup($group1);
$this->assertEquals(1, count($erb->fetchAll()));
$uwg = $uwgr->loadByUserAndGroup($user2, $group1);
$this->assertNotNull($uwg);
$group2 = $groupRepo->loadById($group2->getId());
$this->assertTrue($group2->getIsDeleted());
$this->assertEquals($group1->getId(), $group2->getIsDuplicateOfId());
}
示例13: build
public function build()
{
// We only want events in X days before now and onwards
$time = \TimeSource::getDateTime();
$time->add(new \DateInterval("P" . $this->daysBefore . "D"));
$this->eventRepositoryBuilder->setBefore($time);
parent::build();
}
示例14: hasRunToday
public function hasRunToday()
{
$start = \TimeSource::getDateTime();
$start->setTime(0, 0, 0);
$stat = $this->app['db']->prepare("SELECT ended_at FROM task_log " . "WHERE extension_id=:extension_id AND task_id=:task_id AND started_at > :started_at " . "ORDER BY ended_at DESC LIMIT 1");
$stat->execute(array('extension_id' => $this->getExtensionId(), 'task_id' => $this->getTaskId(), 'started_at' => $start->format("Y-m-d H:i:s")));
return $stat->rowCount() > 0;
}
示例15: create
public function create(ContactSupportModel $contact)
{
global $DB;
$stat = $DB->prepare("INSERT INTO contact_support (subject, message, email, user_account_id, ip, browser, created_at, is_spam_honeypot_field_detected) " . "VALUES (:subject, :message, :email, :user_account_id, :ip, :browser, :created_at, :is_spam_honeypot_field_detected) RETURNING id");
$stat->execute(array('subject' => substr($contact->getSubject(), 0, VARCHAR_COLUMN_LENGTH_USED), 'message' => $contact->getMessage(), 'email' => substr($contact->getEmail(), 0, VARCHAR_COLUMN_LENGTH_USED), 'user_account_id' => $contact->getUserAccountId(), 'ip' => substr($contact->getIp(), 0, VARCHAR_COLUMN_LENGTH_USED), 'browser' => $contact->getBrowser(), 'created_at' => \TimeSource::getFormattedForDataBase(), 'is_spam_honeypot_field_detected' => $contact->getIsSpamHoneypotFieldDetected() ? 1 : 0));
$data = $stat->fetch();
$contact->setId($data['id']);
}