成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

聊聊Laravel Carbon擴展包的作用及用法

下面由Laravel教程欄目帶大家推薦介紹關于Laravel Carbon 擴展包,希望對大家有所幫助!

  • Introduction

Carbon *繼承了PHP的 *Datetime *類和JsonSerialiable。所以 *Carbon *中沒有涉及到的,但在 *Datetime *和JsonSerializable*中已經實現(xiàn)的方法都是可以使用的。

 class  Carbon  extends  DateTime  implements  JsonSerializable   {   //code here}

Carbon 類聲明在 Carbon 命名空間下,可以通過引入命名空間的方式來代替每次輸入完整的類名。

  <?php use  CarbonCarbon;

要特別留意是否使用了正確的時區(qū),比如的所有差異比較都使用或者系統(tǒng)設定的時區(qū)

 $dtToronto =  Carbon::create(2012,  1,  1,  0,  0,  0,  'America/Toronto');  $dtVancouver =  Carbon::create(2012,  1,  1,  0,  0,  0,  'America/Vancouver');  echo $dtVancouver->diffInHours($dtToronto);  //

以上進行的時間比較是在提供的 Carbon 實例所在的時區(qū)下完成的。例如作者所在的時區(qū)為 東京時間減13 小時,因此在下午一點后。Carbon::now(‘Asia/Tokyo’)->isToday() 將會返回 false ,如果在調用 now() 時設置時區(qū)為東京時區(qū),接下來的操作都使用東京時區(qū)是說不過去的。所以在與 *now() *創(chuàng)建的實例進行比較時,默認是在當前時區(qū)下完成的。

  • Instantiation

有幾種不同的方法可以創(chuàng)建一個新的Carbon實例。首先是構造函數(shù)。它覆蓋父構造函數(shù),您最好閱讀PHP手冊中的第一個參數(shù),并了解它所接受的日期/時間字符串格式。您可能會發(fā)現(xiàn)自己很少使用構造函數(shù),而是依賴于顯式靜態(tài)方法來提高可讀性

 $carbon =  new  Carbon();  // 等同于 Carbon::now()   $carbon =  new  Carbon('first day of January 2008',  'America/Vancouver');  echo get_class($carbon);  // 'CarbonCarbon'  $carbon =  Carbon::now(-5);//1表示英國倫敦,2表示法國巴黎

您將在上面注意到,timezone(2nd)參數(shù)是作為字符串和整數(shù)而不是DateTimeZone實例傳遞的。所有DateTimeZone參數(shù)都已被增強,因此您可以將一個DateTimeZone實例、字符串或整型偏移量傳遞給GMT,并為您創(chuàng)建時區(qū)。在下一個示例中再次顯示了這一點,該示例還介紹了now()函數(shù)。

  $nowInLondonTz =  Carbon::now(new DateTimeZone('Europe/London'));    // 或者以字符串形式只傳時區(qū)    $nowInLondonTz =  Carbon::now('Europe/London');// 或者在DST期間創(chuàng)建一個時區(qū)為+1到GMT的日期,然后傳遞一個整數(shù)echo Carbon::now(1)->tzName;  // Europe/London

如果您真的喜歡您的動態(tài)方法調用,并且對使用構造函數(shù)時所需的額外的行或難看的括號感到失望,那么您將喜歡parse方法。

 echo (new  Carbon('first day of December 2008'))->addWeeks(2);  // 2008-12-15 00:00:00   echo Carbon::parse('first day of December 2008')->addWeeks(2);  // 2008-12-15 00:00:00

NOTE*:PHP 5.4* 之前(new MyClass())->method()會報語法錯誤**, 如果你使用**PHP 5.3, 你需要創(chuàng)建一個變量然后再調用方法:

  $date =  new  Carbon('first day of December 2008');      echo $date->addWeeks(2);

傳遞給Carbon:::parsenew Carbon的字符串可以表示相對時間(next sunday, tomorrow, first day of next month, last year)或絕對時間(first day of December 2008, 2017-01-06)。您可以用Carbon::hasRelativeKeywords()測試一個字符串是否會產生一個相對或絕對日期。

  $string =  'first day of next month';    if  (strtotime($string)  ===  false)  {   echo "'$string' is not a valid date/time string.";    } elseif (Carbon::hasRelativeKeywords($string))  {   echo "'$string' is a relative valid date/time string, it will returns different dates depending on the current date.";   }  else  {    echo "'$string' is an absolute date/time string, it will always returns the same date.";   }

為了配合now(),還存在一些靜態(tài)的實例化助手來創(chuàng)建廣為人知的實例。這里唯一需要注意的是,today()tomorrow()yesterday()除了按照預期的行為,都接受一個時區(qū)參數(shù),每個參數(shù)的時間值都設置為00:00:00。

 $now =  Carbon::now();   echo $now;  // 2018-07-26 16:25:49   $today =  Carbon::today();    echo $today;  // 2018-07-26 00:00:00    $tomorrow =  Carbon::tomorrow('Europe/London');    echo $tomorrow;  // 2018-07-27 00:00:00    $yesterday =  Carbon::yesterday();    echo $yesterday;  // 2018-07-25 00:00:00

下一組靜態(tài)助手是createXXX() 函數(shù)。大多數(shù)靜態(tài)create函數(shù)允許您提供許多個或少量的參數(shù),并為所有其他參數(shù)提供默認值。通常默認值是當前日期、時間或時區(qū)。更高的值將適當?shù)匕b,但無效的值將拋出一個InvalidArgumentException,并附帶一條信息。錯誤消息從DateTime:::getLastErrors()調用中獲取。

  Carbon::createFromDate($year, $month, $day, $tz);    Carbon::createFromTime($hour, $minute, $second, $tz);   Carbon::createFromTimeString("$hour:$minute:$second", $tz);    Carbon::create($year, $month, $day, $hour, $minute, $second, $tz);

createFromDate() 的默認值是當前時間. createFromTime() 默認值是今天. create()如果不傳參數(shù)也是當前時間. 與前面一樣,$tz默認設置為當前時區(qū),否則可以是DateTimeZone實例,也可以是字符串時區(qū)值。默認值(模擬底層PHP庫)的唯一特殊情況發(fā)生在指定了小時值但沒有分鐘或秒時,它們將默認為0。

注:***createFromTime()** will default the date to today**。小編經實戰(zhàn)代碼打印出來發(fā)現(xiàn)**createFromTime()**的默認值也是當前時間,不是今天(時分秒并不是**00:00:00**)。***

 $xmasThisYear =  Carbon::createFromDate(null,  12,  25);  // Year默認值是今年   $Y2K =  Carbon::create(2000,  1,  1,  0,  0,  0);  // 等價于Carbon::createMidnightDate(2000, 1, 1)    $alsoY2K =  Carbon::create(1999,  12,  31,  24);    $noonLondonTz =  Carbon::createFromTime(12,  0,  0,  'Europe/London');    $teaTime =  Carbon::createFromTimeString('17:00:00',  'Europe/London');   // A two digit minute could not be found    try  {       Carbon::create(1975,  5,  21,  22,  -2,  0);  }  catch(InvalidArgumentException $x)  {      echo $x->getMessage()}

創(chuàng)建異常發(fā)生在使用負值上,而不是在溢出上,要獲取溢出上的異常,請使用createSafe()

echo Carbon::create(2000,  1,  35,  13,  0,  0);// 2000-02-04 13:00:00  //(1月有31天,4天自動加上去轉換成了2月4號)   try  {   Carbon::createSafe(2000,  1,  35,  13,  0,  0);   }  catch  (CarbonExceptionsInvalidDateException $exp)  {  echo $exp->getMessage();  }// 會報錯:day : 35 is not a valid value.

NOTE1:2018-02-29會產生一個異常,而2020-02-29不會產生異常,因為2020年是閏年。

NOTE2:Carbon::createSafe(2014,3,30,1,30,0,’Europe/London’);從PHP 5.4開始也會產生一個異常,因為在夏令時跳過一個小時,但是在PHP 5.4之前,它只會創(chuàng)建這個無效的日期。

 Carbon::createFromFormat($format, $time, $tz);

createFromFormat()是最基本的php函數(shù)DateTime:::createFromFormat的包裝器。不同的是,$tz參數(shù)可以是DateTimeZone實例或字符串時區(qū)值。此外,如果格式有錯誤,這個函數(shù)將調用DateTime::getLastErrors()方法,然后拋出一個InvalidArgumentException,錯誤作為消息。如果您查看上面的createXX()函數(shù)的源代碼,它們都會調用createFromFormat()。

 echo Carbon::createFromFormat('Y-m-d H',  '1975-05-21 22')->toDateTimeString();  // 1975-05-21 22:00:00

最后三個create函數(shù)用于使用unix時間戳。第一個將創(chuàng)建一個與給定的時間戳相等的Carbon實例,并將設置時區(qū)或默認為當前時區(qū)。第二個createFromTimestampUTC()是不同的,因為時區(qū)將保持UTC(GMT)。第二種方法與Carbon: createFromFormat(‘@’.$timestamp)的作用相同,但我只是讓它更明確了一點。第三個是createFromTimestampMs(),它接受以毫秒而不是秒為單位的時間戳。也允許使用負時間戳。

 echo Carbon::createFromTimestamp(-1)->toDateTimeString();  // 1969-12-31 18:59:59   echo Carbon::createFromTimestamp(-1,  'Europe/London')->toDateTimeString();  // 1970-01-01 00:59:59   echo Carbon::createFromTimestampUTC(-1)->toDateTimeString();  // 1969-12-31 23:59:59echo Carbon::createFromTimestampMs(1)->format('Y-m-dTH:i:s.uP T');  // 1969-12-31T19:00:00.001000-05:00 EST   echo Carbon::createFromTimestampMs(1,  'Europe/London')->format('Y-m-dTH:i:s.uP T');  // 1970-01-01T01:00:00.001000+01:00 BST

您還可以copy()在現(xiàn)有Carbon實例上創(chuàng)建。如預期的那樣,日期、時間和時區(qū)值都被復制到新實例。

 $dt =  Carbon::now();   echo $dt->diffInYears($dt->copy()->addYear());  // 1

// $dt 實例沒有改變,任然是Carbon:now()

您可以在現(xiàn)有的Carbon實例上使用nowWithSameTz()來在相同的時區(qū)中獲取一個新的實例。

 $meeting =  Carbon::createFromTime(19,  15,  00,  'Africa/Johannesburg');// 19:15 in Johannesburg   echo 'Meeting starts at '.$meeting->format('H:i').' in Johannesburg.';  // Meeting starts at 19:15 in Johannesburg.// now in Johannesburg   echo "It's ".$meeting->nowWithSameTz()->format('H:i').' right now in Johannesburg.';  // It's 09:37 right now in Johannesburg.

最后,如果您發(fā)現(xiàn)自己從另一個庫繼承了DateTime實例,不要害怕!您可以通過友好的instance()方法創(chuàng)建一個Carbon實例。或者使用更靈活的方法make(),它可以從DateTimeCarbonstring返回一個新的Carbon實例,否則它只返回null。

 $dt =  new DateTime('first day of January 2008');  // <== instance from another API  $carbon =  Carbon::instance($dt);   echo get_class($carbon);  // 'CarbonCarbon'   echo $carbon->toDateTimeString();  // 2008-01-01 00:00:00

關于微秒的簡要說明。PHP DateTime對象允許您設置一個微秒值,但是忽略它的所有日期數(shù)學。現(xiàn)在,1.12.0的Carbon在實例化或復制操作過程中支持微秒,并在默認情況下使用format()方法。

$dt =  Carbon::parse('1975-05-21 22:23:00.123456');   echo $dt->micro;  //    echo $dt->copy()->micro;  //

在PHP 7.1之前 DateTime微秒未添加到“now”實例,并且之后不能更改,這意味著:

$date =  new  DateTime('now');   echo $date->format('u');   // display current microtime in PHP >= 7.1 (expect a bug in PHP 7.1.3 only)// display 000000 before PHP 7.1   $date =  new  DateTime('2001-01-01T00:00:00.123456Z');   echo $date->format('u');   // display 123456 in all PHP versions$date->modify('00:00:00.987654');echo $date->format('u');// display 987654 in PHP >= 7.1// display 123456 before PHP 7.1

為了解決這個限制,我們在PHP < 7.1中調用了microseconds,但是這個特性在需要時可以被禁用(PHP >= 7.1):

Carbon::useMicrosecondsFallback(false);var_dump(Carbon::isMicrosecondsFallbackEnabled());  // false  echo Carbon::now()->micro;  // 0 in PHP < 7.1, microtime in PHP >= 7.1Carbon::useMicrosecondsFallback(true);  // default value  var_dump(Carbon::isMicrosecondsFallbackEnabled());  // trueecho Carbon::now()->micro;  // microtime in all PHP version

是否需要遍歷一些日期以找到最早或最近的日期?不知道如何設置初始最大值/最小值?現(xiàn)在有兩個助手可以幫助你做出簡單的決定:

 echo Carbon::maxValue();  // '9999-12-31 23:59:59'echo Carbon::minValue();  // '0001-01-01 00:00:00'

最小和最大值主要取決于系統(tǒng)(32位或64位)。

使用32位OS系統(tǒng)或32位版本的PHP(您可以在PHP中使用PHP_INT_SIZE == 4來檢查它),最小值是0-unix-timestamp(1970-01-01 00:00:00),最大值是常量PHP_INT_MAX給出的時間戳。

使用64位OS系統(tǒng)和64位PHP版本,最小值為01-01 00:00,最大值為9999-12-31 23:59:59。

  • Localization

不幸的是,基類DateTime沒有任何本地化支持。為了開始本地化支持,還添加了一個formatLocalized($format)方法。實現(xiàn)使用當前實例時間戳對strftime進行調用。如果您首先使用PHP函數(shù)setlocale()設置當前的語言環(huán)境,那么返回的字符串將被格式化為正確的語言環(huán)境。

$newLocale = setlocale(LC_TIME,  'German');   if  ($newLocale ===  false)  {   echo '"German" locale is not installed on your machine, it may have a different name a different name on your machine or you may need to install it.';  }echo $dt->formatLocalized('%A %d %B %Y');  // Mittwoch 21 Mai 1975   setlocale(LC_TIME,  'English');   echo $dt->formatLocalized('%A %d %B %Y');  // Wednesday 21 May 1975    setlocale(LC_TIME,  '');  // reset locale

diffForHumans()也被定位。您可以通過使用靜態(tài)Carbon::setLocale()函數(shù)來設置Carbon locale(),并使用Carbon::getLocale()獲取當前的設置。

Carbon::setLocale('de');   echo Carbon::getLocale();  // de   echo Carbon::now()->addYear()->diffForHumans();  // in 1 Jahr   Carbon::setLocale('en');   echo Carbon::getLocale();  // en

或者,您可以將一些代碼與給定的語言環(huán)境隔離:

  Carbon::executeWithLocale('de',  function  ($newLocale)  {   // You can optionally get $newLocale as the first argument of the closure   // It will be set to the new locale or false if the locale was not found.  echo Carbon::now()->addYear()->diffForHumans();   });  // in 1 Jahr   // outside the function the locale did not change  echo Carbon::getLocale();  // en  // or same using a return statement$french =  Carbon::executeWithLocale('fr',  function  ()  {return  Carbon::now()->addYear()->diffForHumans();});  echo $french;  // dans 1 an

有些語言需要打印utf8編碼(主要以. utf8結尾的語言環(huán)境包)。在本例中,您可以使用靜態(tài)方法"php

Carbon::setUtf8()對對utf8字符集的formatlocalized()調用的結果進行編碼。  setlocale(LC_TIME,  'Spanish');   $dt =  Carbon::create(2016,  01,  06,  00,  00,  00);  Carbon::setUtf8(false);  echo $dt->formatLocalized('%A %d %B %Y');  // mi?rcoles 06 enero 2016  Carbon::setUtf8(true);  echo $dt->formatLocalized('%A %d %B %Y');  // miércoles 06 enero 2016  Carbon::setUtf8(false);   setlocale(LC_TIME,  '');

在Linux上

如果您在翻譯方面有問題,請檢查系統(tǒng)中安裝的地區(qū)(本地和生產)。

區(qū)域設置-列出已啟用的區(qū)域設置。

sudo locale-gen fr_FR。UTF-8安裝一個新的語言環(huán)境。

sudo dpkg-reconfigure locale來發(fā)布所有啟用的locale。

并重啟系統(tǒng)。

您可以通過以下方式自定義現(xiàn)有語言:

Carbon::setLocale('en');    $translator =  Carbon::getTranslator();    $translator->setMessages('en', array(   'day'  =>  ':count boring day|:count boring days',    ));   $date1 =  Carbon::create(2018,  1,  1,  0,  0,  0);   $date2 =  Carbon::create(2018,  1,  4,  4,  0,  0);   echo $date1->diffForHumans($date2,  true,  false,  2);  // 3 boring days 4 hours$translator->resetMessages('en');  // reset language customizations for en language

請注意,您還可以使用另一個轉換器Carbon::setTranslator($custom),只要給定的轉換器繼承了SymfonyComponentTranslationTranslatorInterface。 因此,對格式本地化、getter(如localeMonth、localedayayofweek和短變體)的語言環(huán)境支持是由安裝在操作系統(tǒng)中的語言環(huán)境驅動的。對于其他翻譯,由于碳社區(qū)的支持,它在內部得到了支持。您可以使用以下方法檢查支持的內容:

 echo implode(', ', array_slice(Carbon::getAvailableLocales(),  0,  3)).'...';  // af, ar, ar_Shakl...   // Support diff syntax (before, after, from now, ago)   var_dump(Carbon::localeHasDiffSyntax('en'));  // bool(true)    var_dump(Carbon::localeHasDiffSyntax('zh_TW'));  // bool(true)   // Support 1-day diff words (just now, yesterday, tomorrow)   var_dump(Carbon::localeHasDiffOneDayWords('en'));  // bool(true)    var_dump(Carbon::localeHasDiffOneDayWords('zh_TW'));  // bool(false)   // Support 2-days diff words (before yesterday, after tomorrow)var_dump(Carbon::localeHasDiffTwoDayWords('en'));  // bool(true)   var_dump(Carbon::localeHasDiffTwoDayWords('zh_TW'));  // bool(false)   // Support short units (1y = 1 year, 1mo = 1 month, etc.)   var_dump(Carbon::localeHasShortUnits('en'));  // bool(true)var_dump(Carbon::localeHasShortUnits('zh_TW'));  // bool(false)// Support period syntax (X times, every X, from X, to X)var_dump(Carbon::localeHasPeriodSyntax('en'));  // bool(true)var_dump(Carbon::localeHasPeriodSyntax('zh_TW'));  // bool(false)

以下是最后一個碳版本支持的73個地區(qū)的概述:

聊聊Laravel Carbon擴展包的作用及用法

聊聊Laravel Carbon擴展包的作用及用法

聊聊Laravel Carbon擴展包的作用及用法

注意,如果您使用Laravel 5.5+,語言環(huán)境將根據(jù)當前的最后一個App:setLocale execution自動設置。所以擴散人類將是透明的。您可能仍然需要在某些中間件中運行setlocale以使formatlocalizedworking正確。

  • Testing Aids

測試方法允許您在創(chuàng)建“現(xiàn)在”實例時設置要返回的Carbon實例(real或mock)。所提供的實例將在以下條件下具體返回:

對static now()方法的調用,例如聊聊Laravel Carbon擴展包的作用及用法:now()

當一個空(或空字符串)被傳遞給構造函數(shù)或parse()時,ex.new Carbon(空)

當字符串“now”傳遞給構造函數(shù)或parse()時,ex. new Carbon(‘now’)

給定的實例也將作為diff方法的默認相對時間。

 $knownDate =  Carbon::create(2001,  5,  21,  12);  // create testing date    Carbon::setTestNow($knownDate);  // set the mock (of course this could be a real mock object)    echo Carbon::getTestNow();  // 2001-05-21 12:00:00    echo Carbon::now();  // 2001-05-21 12:00:00    echo new  Carbon();  // 2001-05-21 12:00:00   echo Carbon::parse();  // 2001-05-21 12:00:00   echo new  Carbon('now');  // 2001-05-21 12:00:00    echo Carbon::parse('now');  // 2001-05-21 12:00:00    echo Carbon::create(2001,  4,  21,  12)->diffForHumans();  // 1 month agovar_dump(Carbon::hasTestNow());  // bool(true)   Carbon::setTestNow();  // clear the mock   var_dump(Carbon::hasTestNow());  // bool(false)echo Carbon::now();  // 2018-07-05 03:37:12

一個更有意義的完整例子:

class  SeasonalProduct   {   protected $price;   public  function __construct($price)   {    $this->price = $price;   }   public  function getPrice()  {   $multiplier =  1;   if  (Carbon::now()->month ==  12)  {   $multiplier =  2;   }   return $this->price * $multiplier;}}   $product =  new  SeasonalProduct(100);   Carbon::setTestNow(Carbon::parse('first day of March 2000'));   echo $product->getPrice();  //Carbon::setTestNow(Carbon::parse('first day of December 2000'));   echo $product->getPrice();  //   Carbon::setTestNow(Carbon::parse('first day of May 2000'));   echo $product->getPrice();  //   Carbon::setTestNow();

根據(jù)給定的“now”實例,還可以對相關短語進行嘲笑。

 $knownDate =  Carbon::create(2001,  5,  21,  12);  // create testing date    Carbon::setTestNow($knownDate);  // set the mock    echo new  Carbon('tomorrow');  // 2001-05-22 00:00:00  ... notice the time !   echo new  Carbon('yesterday');  // 2001-05-20 00:00:00   echo new  Carbon('next wednesday');  // 2001-05-23 00:00:00   echo new  Carbon('last friday');  // 2001-05-18 00:00:00    echo new  Carbon('this thursday');  // 2001-05-24 00:00:00    Carbon::setTestNow();  // always clear it !

被認為是相對修飾語的單詞列表如下:

  • +
  • ago
  • first
  • next
  • last
  • this
  • today
  • tomorrow
  • yesterday

請注意,與next()、previous()和modify()方法類似,這些相對修飾符中的一些將把時間設置為00:00。

Carbon: parse($time, $tz)和new Carbon($time, $tz)都可以將時區(qū)作為第二個參數(shù)。 echo Carbon::parse('2012-9-5 23:26:11.223',  'Europe/Paris')->timezone->getName();  // Europe/Paris
  • Getters

getter方法是通過PHP的__get()方法實現(xiàn)的。這使您能夠像訪問屬性而不是函數(shù)調用那樣訪問值。

$dt =  Carbon::parse('2012-10-5 23:26:11.123789');    // 這些getter方法都將返回int類型   var_dump($dt->year);  // int(2012)var_dump($dt->month);  // int(10)   var_dump($dt->day);  // int(5)   var_dump($dt->hour);  // int(23)    var_dump($dt->minute);  // int(26)   var_dump($dt->second);  // int(11)var_dump($dt->micro);  // int(123789)// dayOfWeek 返回一個數(shù)值 0 (sunday) 到 6 (saturday)   var_dump($dt->dayOfWeek);  // int(5)// dayOfWeekIso 返回一個數(shù)值 1 (monday) 到 7 (sunday)   var_dump($dt->dayOfWeekIso);  // int(5)   setlocale(LC_TIME,  'German');var_dump($dt->englishDayOfWeek);  // string(6) "Friday"var_dump($dt->shortEnglishDayOfWeek);  // string(3) "Fri"var_dump($dt->localeDayOfWeek);  // string(7) "Freitag"var_dump($dt->shortLocaleDayOfWeek);  // string(2) "Fr"var_dump($dt->englishMonth);  // string(7) "October"var_dump($dt->shortEnglishMonth);  // string(3) "Oct"var_dump($dt->localeMonth);  // string(7) "Oktober"var_dump($dt->shortLocaleMonth);  // string(3) "Okt"setlocale(LC_TIME,  '');var_dump($dt->dayOfYear);  // int(278)var_dump($dt->weekNumberInMonth);// weekNumberInMonth consider weeks from monday to sunday, so the week 1 will// contain 1 day if the month start with a sunday, and up to 7 if it starts with a mondayvar_dump($dt->weekOfMonth);  // int(1)// weekOfMonth will returns 1 for the 7 first days of the month, then 2 from the 8th to// the 14th, 3 from the 15th to the 21st, 4 from 22nd to 28th and 5 above   var_dump($dt->weekOfYear);  // int(40)   var_dump($dt->daysInMonth);  // int(31)   var_dump($dt->timestamp);  // int(1349493971)   var_dump(Carbon::createFromDate(1975,  5,  21)->age);  // int(43) calculated vs now in the same tzvar_dump($dt->quarter);  // int(4)   // Returns an int of seconds difference from UTC (+/- sign included)   var_dump(Carbon::createFromTimestampUTC(0)->offset);  // int(0)   var_dump(Carbon::createFromTimestamp(0)->offset);  // int(-18000)   // Returns an int of hours difference from UTC (+/- sign included)   var_dump(Carbon::createFromTimestamp(0)->offsetHours);  // int(-5)// Indicates if day light savings time is on   var_dump(Carbon::createFromDate(2012,  1,  1)->dst);  // bool(false)   var_dump(Carbon::createFromDate(2012,  9,  1)->dst);  // bool(true)   // Indicates if the instance is in the same timezone as the local timezone   var_dump(Carbon::now()->local);  // bool(true)var_dump(Carbon::now('America/Vancouver')->local);  // bool(false)// Indicates if the instance is in the UTC timezonevar_dump(Carbon::now()->utc);  // bool(false)   var_dump(Carbon::now('Europe/London')->utc);  // bool(false)   var_dump(Carbon::createFromTimestampUTC(0)->utc);  // bool(true)   // Gets the DateTimeZone instanceecho get_class(Carbon::now()->timezone);  // DateTimeZone   echo get_class(Carbon::now()->tz);  // DateTimeZone// Gets the DateTimeZone instance name, shortcut for ->timezone->getName()echo Carbon::now()->timezoneName;  // America/Toronto   echo Carbon::now()->tzName;  // America/Toronto
  • Setters

下面的setter是通過PHP的__set()方法實現(xiàn)的。值得注意的是,除了顯式地設置時區(qū)之外,任何設置程序都不會更改實例的時區(qū)。具體地說,設置時間戳不會將相應的時區(qū)設置為UTC。

 $dt =  Carbon::now();$dt->year =  1975;   $dt->month =  13;  //強制 year++ 然后 month = 1    $dt->month =  5;    $dt->day =  21;   $dt->hour =  22;   $dt->minute =  32;    $dt->second =  5;   $dt->timestamp =  169957925;  // 這不會改變時區(qū)   // 通過DateTimeZone實例或字符串設置時區(qū)  $dt->timezone =  new  DateTimeZone('Europe/London');$dt->timezone =  'Europe/London';$dt->tz =  'Europe/London';
  • Fluent Setters

對于setter沒有可選參數(shù),但是函數(shù)定義中有足夠的多樣性,因此無論如何都不需要它們。值得注意的是,除了顯式地設置時區(qū)之外,任何設置程序都不會更改實例的時區(qū)。具體地說,設置時間戳不會將相應的時區(qū)設置為UTC。

 $dt =  Carbon::now();$dt->year(1975)->month(5)->day(21)->hour(22)->minute(32)->second(5)->toDateTimeString();   $dt->setDate(1975,  5,  21)->setTime(22,  32,  5)->toDateTimeString();    $dt->setDate(1975,  5,  21)->setTimeFromTimeString('22:32:05')->toDateTimeString();    $dt->setDateTime(1975,  5,  21,  22,  32,  5)->toDateTimeString();   $dt->timestamp(169957925)->timezone('Europe/London');   $dt->tz('America/Toronto')->setTimezone('America/Vancouver');

您還可以將日期和時間與其他DateTime/Carbon對象分開設置:

 $source1 =  new  Carbon('2010-05-16 22:40:10');   $dt =  new  Carbon('2001-01-01 01:01:01');   $dt->setTimeFrom($source1);echo $dt;  // 2001-01-01 22:40:10    $source2 =  new  DateTime('2013-09-01 09:22:56');$dt->setDateFrom($source2);echo $dt;  // 2013-09-01 22:40:10
  • IsSet

實現(xiàn)了PHP函數(shù)isset()。這是在一些外部系統(tǒng)(例如Twig)在使用屬性之前驗證屬性的存在時完成的。這是使用isset()或empty()方法完成的。在PHP站點:isset()、isset()、empty()上,您可以閱讀

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
亚洲精品TV久久久久久久久久| 亚洲成AV人最新无码| 台湾MD豆传媒一区二区| 玩弄秘书的奶又大又软| 午夜精品一区二区三区在线观看 | 女人扒下裤让男人桶到爽| 人妻尝试又大又粗久久| 搡老女人911熟妇老熟女| 无码成人免费AV片在线观看| 亚洲AV伊人久久青青草原| 亚洲中文字幕久久无码精品| 69无人区码一二三四区别| XXXⅩ少妇少妇XXXX范冰冰| 东北浪妇王梅娟偷人视频| 国产熟女真实乱精品视频| 久久精品女人天堂AV麻| 欧美男男作爱GAYWWW| 三个医生换着躁我一个| 亚洲AV无码乱码在线观看富二代| 一本大道久久东京热无码AV| 啊轻点灬大JI巴太粗太长了网站 | 肥臀浪妇太爽了快点再快点| 国产玉足榨精视频在线观看| 老湿机69福利区无码| 日产精品一区二区| 亚洲AV永久无码区成人网站| √新版天堂资源在线资源| 丰满的熟妇人妻中文字幕久久| 韩国青草自慰喷水无码直播间 | 搡BBB搡BBBB搡BBBB| 亚洲精品成人网久久久久久| 99国产亚洲精品美女久久久久| 国产AV无码专区影视| 精品欧美成人高清在线观看| 欧美亚洲国产精品久久高清| 午夜在线观看的免费网站| 在糖心VLOG唐伯虎女主角是谁 | 亚洲AV成人网站在线播放| 中国JAPANESE成熟少妇| 公交车强摁做开腿呻吟| 久久久久亚洲AV无码尤物| 色噜噜狠狠狠狠色综合久一| 亚洲乱码中文字幕久久孕妇黑人| 亚洲AVTV永久综合在线| 中文无码日韩欧免费视频APP| 公交车强摁做开腿呻吟| 久久久无码精品亚洲日韩蜜臀浪潮| 日本护士体内SHE精2╳╳╳| 亚洲精品无码AV人在线播放| 抱着边走边撞水流了一地的水| 黑人粗硬进入过程视频| 強暴強姦AV正片一区二区| 亚洲AV永久无码精品无码流畅| ASS鲜嫩鲜嫩PICS日本| 国产在线看片无码不卡| 欧美丰满美乳XXⅩ高潮| 亚洲AV无码专区国产乱码软件 | 精品浪潮av一区二区三区| 人妻无码ΑV中文字幕久久| 人妻丰满熟妇av无码| 亚洲国产成人久久综合电影| 波多野结衣好大好紧好爽| 久久久久精品精品6精品精品| 少妇高潮呻吟在线观看| 中文字幕乱码亚洲无线码| 亚洲 日韩 另类 制服 无码| 铜铜铜铜铜铜铜铜铜好大好深色 | 欧美成人精品第一区| 人妻少妇中文字幕乱码| 亚洲欧美日韩综合久久久久| 大肉大捧一进一出视频出来呀| 久久久久久亚洲精品中文字幕| 人妻无码中文字幕一区二区三区| 无码人妻精品一区二区三| JIZZJIZZ日本护士视频| 豆国产96在线 | 亚洲| 精品国产一区二区三区国产区| 老旺的大肉蟒进进出出次视频| 推高她的裙子挺身而入| VODAFONEWIFI另类| 久久天堂AV女色优精品 | 亚洲AV无码专区在线观看亚| 成 人 黄 色 网站 69| 免费毛片在线看片免费丝瓜视频| 亚洲国产AV玩弄放荡人妇系列| 丰满的继牳3中文字幕系列免费| 内射猛交XXXXⅩX最新消息| 亚洲国产精品VA在线观看香蕉| 国产AVXXXX无套内射| 欧洲免费无线码在线一区| 一本大道香蕉大无线吗| 国产亚洲欧洲综合5388| 少妇激情AV一区二区三区| FREE性中国熟女HD交换| 久碰人妻人妻人妻人妻人掠| 亚洲高清国产拍精品熟女| 国产精品丝袜一区二区三区| 日韩欧美人妻一区二区三区| 最新无码A∨在线观看| 幼儿HIPHOP仙踪林的| 国语对白做受XXXXX在线中| 久久亚洲日韩看片无码| 日本成熟…@视频| 中文字幕亚洲综合久久蜜桃| 久久99久久99精品中文字幕| 亚洲AV无码潮喷在线入口| 国产成人欧美精品视频| 色噜噜综合亚洲AV中文无码| 白嫩少妇BBW撒尿视频| 欧美黑人又大又粗XXXXX| 欲色欲色天天天WWW| 久久久亚洲熟妇熟| 亚洲熟女WWW一区二区三区| 禁18在线观看免费网站| 亚洲成AV人片天堂网久久| 哈昂~哈昂够了太多了老师| 性色AV一区二区三区人妻| 国产乱子伦视频在线播放| 无码精品人妻一区二区| 国产精品VA在线观看无码不卡 | 亚洲国产精品美女久久久久| 国内ZOOM人与ZOOM| 欧美少妇XXXXX| A级毛片高清免费视频在线播放| 男男gv在线观看| 中文字日产幕码三区的做法大全 | 久久WWW成人_看片免费不卡| 亚洲精品55夜色66夜色| 娇小XXXXBXBⅨ黑人XX| 亚洲精品无码AV人在线观看| 九九视频免费精品视频| 亚洲熟妇AV日韩熟妇AV| 久久久久国产精品嫩草影院 | 麻豆果冻传媒精品国产AV| 中国少妇的BBWWBBWW| 妺妺窝人体色WWW婷婷| 99久久99久久免费精品小说| 欧美人与禽XOXO性伦交| YYYY1111少妇影院在线观| 日韩精品人妻系列无码AV东京 | 无码精品人妻一区二区三区蜜桃 | 亚洲乱码日产精品BD在线 | 一个上添B一个下添| 国产精品伦一区二区三级视频| 无码人妻侵犯一区侵犯| 国语偷拍人妻露脸| 亚洲色欲久久久久综合网| 另类老妇性BBWBBW| GOGO全球大胆高清人体131| 日本熟妇人妻中出| 国产成人精品久久一区二区三区 | 久久亚洲色WWW成人网址| 91人妻人人澡人人爽| 日本高清视频色WWW色| 国产AV无码专区亚洲AV男同| 亚洲AV秘 无码一区二区三l| 九九爱WWW免费人成视频| 中文字幕乱码人妻无码久久| 强伦姧人妻三上悠亚中文字幕| 穿越后每天都在PIAPIA打脸| 无码少妇一区二区三区浪潮AV| 激情欧美成人久久综合| 中文WWW新版资源在线| 人妻少妇出轨中文字幕| 国产好大好硬好爽免费不卡| 亚洲国产精品VA在线看黑人 | 制服丝袜另类专区制服| 人人爽人人模人人人爽人人爱| 国产成人亚洲精品| 亚洲欧美一区二区成人片婷婷 | 麻豆三级电影无码| 成人亚洲性情网站WWW在线观看 | 日本高清二区视频久二区| 国产精品国产三级欧美二区| 亚洲日韩精品无码AV海量| 欧美人妻精品一区二区三区 | 丁香花在线视频观看免费| 亚洲AV无码一区二区三区鸳鸯影| 老赵抱着媛媛在厨房做饭视频| 办公室的秘密2中文字幕| 小诗的公交车日记免费读| 久久久久无码精品亚洲日韩 | 人妻体体内射精一区二区| 国产精品无码久久久久| 伊人久久无码大香线蕉综合| 日产无人区一线二线三线观看| 国内精品久久久久精品爽爽| 综合亚洲另类欧美久久成人精品 | 午夜私人理论电影| 麻花豆传媒剧国产MV在线| 国产成人麻豆精品午夜福利在线 | 成人毛片女人18女人免费| 亚洲V国产V天堂A无码二区| 内射射满骚B含着小说| 国产精品久久久久精品三级APP| 一本色道久久综合狠狠躁篇| 日日摸日日碰夜夜爽无| 久久久精品无码中文天美| 绯色av一区二区三区蜜臀| 亚洲综合精品成人|