ishworkh/navigable-date

php DateTime 类的包装器

v3.0.0 2017-02-25 14:13 UTC

This package is not auto-updated.

Last update: 2024-09-23 14:23:40 UTC


README

NavigableDate 是核心 php DateTime 类的包装器。它封装了核心类,并暴露了提供导航日期方式的 NavigableDateInterface。它提供了 nextDay、nextWeek、previousDay、nextMonth 等方法,以及 format、getTimestamp、getOffset、getDifference 和 getTimezone 等方法。

基本用法

可以通过正常的 new 操作符实例化,但需要您手动处理依赖项(NavigableDate\NavigableDateLocator 提供了所有必需的依赖项)。

推荐的方法是通过在 NavigableDateLocator 中可用的 NavigableDateFactory 获取实例。

   
   $NavigableDate = NavigableDate\NavigableDateLocator::getInstance()
                   ->getNavigableDateFactory()
                   ->create('2016-07-11');
   
   or 
   
   $NavigableDate = NavigableDate\NavigableDateLocator::getInstance()
                   ->getNavigableDateFactory()
                   ->createFromDateTime(new DateTime());
   

甚至更简单,提供了 NavigableDate\NavigableDateFacade 用于实例化。

   $NavigableDate = NavigableDate\NavigableDateFacade::create('2016-07-11');

它包括 NavigableDate\NavigableDateServiceProvider 以将此库集成到 Laravel 应用程序中。只需将此提供者在服务提供者列表中包含即可。之后,类型提示 NavigableDate\NavigableDateFactory 将解析为负责创建新的 NavigableDate\NavigableDate 实例的相应工厂类。

然后,

   $NextDay = $NavigableDate->nextDay();
   
   $NextDay->getTimestamp();
   $NextDay->getOffset();
   $NextDay->getTimeZone();
   $NextDay->format('Y-m-d');
   
   $NextNextDay = $NextDay->nextDay(); 
   $NextNextDay->nextMonth();
   
   $resetTime = true;
   $resetDays = true;
   $resetMonths = true;
   
   $NextDay->previousYear($resetTime, $resetDays, $resetMonths);
   
   // $resetTime -> resets time to 00:00:00
   // $resetDays -> resets day of the month to 01 | resets day to start of the week i.e. Monday in case of nextWeek|prevWeek
   // $resetMonths -> resets month of the year to 01
   

还可以使用 previousMonth、nextYear 方法,并具有在相应方法中重置时间、天数或月份的可能性。

注意:有关它提供的方法的更多详细信息,请参阅 NavigableDate\NavigableDateInterface