Làm cách nào để có được tháng hiện tại bằng cách sử dụng Carbon trong laravel?
Trong blog này, tôi sẽ hướng dẫn bạn cách lấy ngày cuối cùng của tháng trong laravel. Chúng ta cần lấy ngày cuối cùng của tháng hiện tại bằng cách sử dụng Carbon trong laravel Show Tôi đang sử dụng gói carbon và tôi đang cố lấy ngày cuối cùng của tháng hiện tại. Thật dễ dàng và đơn giản để có được tháng hiện tại vào ngày trước bằng cách sử dụng carbon trong laravel. Bạn có thể xem ví dụ dưới đây Trong hướng dẫn này, tôi sẽ cung cấp cho bạn một ví dụ về carbon thêm tháng cho đến nay trong laravel. carbon cung cấp nhiều chức năng như addmonth(), addmonths() để thêm tháng trong laravel 8. Sử dụng thêm tháng, bạn có thể thay đổi ngày và giờ theo tháng Nếu chúng ta cần thêm tháng hoặc nhiều tháng hơn thì bạn có thể sử dụng carbon trong laravel 8. carbon cung cấp phương thức addMonth() và addMonths() để thêm tháng vào đối tượng ngày carbon Vì vậy, hãy xem một ví dụ về laravel 8 carbon thêm tháng cho đến nay hoặc thêm tháng sử dụng carbon trong laravel 8 Hàm carbon addMonth() được sử dụng để thêm tháng tiếp theo vào ngày. Vì vậy, ở đây tôi sẽ cho bạn một ví dụ về ngày hiện tại để thêm một tháng
đầu ra Ngày giờ hiện tại. 022-01-16 07. 03. 05 Hàm carbon addMonths() được sử dụng để thêm các tháng theo yêu cầu của bạn vào ngày. Vì vậy, ở đây tôi sẽ cho bạn một ví dụ về ngày hiện tại để thêm 2 tháng Nếu bạn thực sự yêu thích các cuộc gọi phương thức linh hoạt của mình và cảm thấy thất vọng bởi dòng thừa hoặc cặp dấu ngoặc xấu cần thiết khi sử dụng hàm tạo, bạn sẽ thích phương thức 69
Chuỗi được truyền tới 70 hoặc tới 71 có thể biểu thị thời gian tương đối (chủ nhật tới, ngày mai, ngày đầu tiên của tháng sau, năm ngoái) hoặc thời gian tuyệt đối (ngày đầu tiên của tháng 12 năm 2008, 2017-01-06). Bạn có thể kiểm tra xem một chuỗi sẽ tạo ra một ngày tương đối hay tuyệt đối với 72
Để đi kèm với 68, một số trình trợ giúp khởi tạo tĩnh khác tồn tại để tạo các phiên bản được biết đến rộng rãi. Điều duy nhất thực sự cần chú ý ở đây là ________ 174, ________ 175 và ________ 176, ngoài việc hoạt động như mong đợi, tất cả đều chấp nhận một tham số múi giờ và mỗi giá trị thời gian của chúng được đặt thành ________ 177 2Nhóm người trợ giúp tĩnh tiếp theo là người trợ giúp 78. Hầu hết các hàm tĩnh của 79 cho phép bạn cung cấp nhiều hay ít đối số tùy ý và sẽ cung cấp các giá trị mặc định cho tất cả các hàm khác. Nói chung, các giá trị mặc định là ngày, giờ hoặc múi giờ hiện tại. Các giá trị cao hơn sẽ bao bọc một cách thích hợp nhưng các giá trị không hợp lệ sẽ tạo ra một dấu hiệu 80 kèm theo thông báo cung cấp thông tin. Tin nhắn được lấy từ một DateTime. cuộc gọi getLastErrors() 6 81 sẽ mặc định thời gian đến bây giờ. 82 sẽ mặc định ngày là hôm nay. 83 sẽ mặc định bất kỳ tham số null nào về giá trị tương ứng hiện tại. Như trước đây, 84 mặc định là múi giờ hiện tại và nếu không thì có thể là một thể hiện DateTimeZone hoặc đơn giản là một giá trị múi giờ chuỗi. Trường hợp đặc biệt duy nhất dành cho 83 có giá trị tối thiểu làm mặc định cho đối số bị thiếu nhưng mặc định cho giá trị hiện tại khi bạn chuyển rõ ràng 86 0Tạo ngoại lệ xảy ra trên các giá trị âm như vậy nhưng không xảy ra khi tràn, để có ngoại lệ khi tràn, hãy sử dụng 87 1lưu ý 1. 2018-02-29 cũng có ngoại lệ trong khi 2020-02-29 thì không vì năm 2020 là năm nhuận Lưu ý 2. 88 cũng tạo ra một ngoại lệ vì thời gian này là một giờ bị bỏ qua bởi thời gian tiết kiệm ánh sáng ban ngàylưu ý 3. API gốc PHP cho phép xem xét có một năm 89 giữa 90 và 91 ngay cả khi nó không liên quan đến lịch Gregorian. Đó là lý do tại sao các năm thấp hơn 1 sẽ tạo ra một ngoại lệ bằng cách sử dụng 92. Kiểm tra isValid() để phát hiện năm 0 2 93 chủ yếu là trình bao bọc cho hàm php cơ sở DateTime. tạoFromFormat. Sự khác biệt một lần nữa là đối số 84 có thể là một thể hiện DateTimeZone hoặc một giá trị múi giờ chuỗi. Ngoài ra, nếu có lỗi với định dạng, hàm này sẽ gọi phương thức 95 và sau đó ném một 80 với các lỗi dưới dạng thông báo 3Bạn có thể kiểm tra xem một ngày có khớp với định dạng cho 93 (e. g. thành phần ngày/giờ, từ sửa đổi hoặc dấu tách) bằng cách sử dụng 98 hoặc 99 để đảm bảo dữ liệu thực sự đủ để tạo một phiên bản 4Bạn có thể tạo các phiên bản từ dấu thời gian unix. 100 tạo một phiên bản Carbon bằng với dấu thời gian đã cho và cũng sẽ đặt múi giờ hoặc mặc định nó thành múi giờ hiện tại. 101, khác ở chỗ múi giờ sẽ vẫn là UTC (GMT+00. 00), nó tương đương với 102 nhưng nó hỗ trợ int, float hoặc chuỗi chứa một hoặc nhiều số (như số do 103 tạo ra) nên nó cũng có thể đặt micro giây mà không bị mất độ chính xác. Thứ ba, 104, chấp nhận dấu thời gian tính bằng mili giây thay vì giây. Dấu thời gian âm cũng được cho phép 5Bạn cũng có thể tạo một 105 của một phiên bản Carbon hiện có. Như mong đợi, tất cả các giá trị ngày, giờ và múi giờ đều được sao chép sang phiên bản mới 6Bạn có thể sử dụng 106 trên phiên bản Carbon hiện tại để nhận phiên bản mới tại cùng múi giờ 7Cuối cùng, nếu bạn thấy mình kế thừa một phiên bản 107 từ một thư viện khác, đừng lo. Bạn có thể tạo phiên bản ________ 4108 thông qua phương pháp ________ 4109 thân thiện. Hoặc sử dụng phương thức linh hoạt hơn nữa là 110, phương thức này có thể trả về một phiên bản Carbon mới từ DateTime, Carbon hoặc từ một chuỗi, nếu không thì nó chỉ trả về null 8Carbon 2 (yêu cầu PHP >= 7. 1) hỗ trợ hoàn hảo micro giây. Nhưng nếu bạn sử dụng Carbon 1 và PHP <7. 1, hãy đọc phần của chúng tôi về hỗ trợ một phần micro giây Trước PHP 7. 1 micro giây DateTime không được thêm vào các phiên bản 111 và không thể thay đổi sau đó, điều này có nghĩa là 9Để khắc phục giới hạn này trong Carbon, chúng tôi thêm micro giây khi gọi 112 trong PHP < 7. 1, nhưng tính năng này có thể bị tắt theo yêu cầu (không có tác dụng trong PHP >= 7. 1) 10Bạn có bao giờ cần lặp lại một số ngày để tìm ngày sớm nhất hoặc mới nhất không? 11Giá trị tối thiểu và tối đa chủ yếu phụ thuộc vào hệ thống (32 hoặc 64 bit) Với hệ điều hành 32-bit hoặc phiên bản 32-bit của PHP (bạn có thể kiểm tra nó bằng PHP với 113), giá trị tối thiểu là dấu thời gian 0-unix (1970-01-01 00. 00. 00) và giá trị lớn nhất là dấu thời gian được cung cấp bởi hằng số 114Với hệ điều hành 64 bit và phiên bản PHP 64 bit, tối thiểu là 01-01-01 00. 00. 00 và tối đa là 9999-12-31 23. 59. 59. Thậm chí có thể sử dụng năm âm lên đến -9999 nhưng lưu ý rằng bạn có thể không có kết quả chính xác với một số thao tác vì năm 0 tồn tại trong PHP nhưng không có trong lịch Gregorian Với Carbon 2, quá trình bản địa hóa đã thay đổi rất nhiều, 750 ngôn ngữ mới được hỗ trợ và giờ đây chúng tôi nhúng các định dạng ngôn ngữ, tên ngày, tên tháng, hậu tố thứ tự, kinh tuyến, bắt đầu tuần, v.v. Mặc dù Carbon 1 cung cấp hỗ trợ một phần và dựa vào các gói ngôn ngữ và lớp IntlDateFormatter của bên thứ ba để dịch nâng cao, giờ đây bạn được hưởng lợi từ hỗ trợ quốc tế hóa rộng rãi. Bạn vẫn sử dụng Carbon 1 chứ? . Nếu không, bạn có thể tìm thấy tài liệu Bản địa hóa phiên bản 1 bằng cách nhấp vào đây Thật không may, lớp cơ sở DateTime không có bất kỳ hỗ trợ bản địa hóa nào. Để bắt đầu hỗ trợ bản địa hóa, một phương pháp 115 đã được thêm vào. Việc triển khai thực hiện cuộc gọi đến strftime bằng cách sử dụng dấu thời gian của phiên bản hiện tại. Nếu lần đầu tiên bạn đặt ngôn ngữ hiện tại bằng hàm PHP setlocale() thì chuỗi được trả về sẽ được định dạng theo ngôn ngữ chính xác 12 116 cũng đã được bản địa hóa. Bạn có thể đặt ngôn ngữ Carbon bằng cách sử dụng hàm tĩnh 117 và nhận cài đặt hiện tại với 118 13Hoặc bạn có thể cô lập một số mã với một ngôn ngữ nhất định 14Một số ngôn ngữ yêu cầu mã hóa utf8 để được in (các gói ngôn ngữ chủ yếu không kết thúc bằng 119). Trong trường hợp này, bạn có thể sử dụng phương thức tĩnh 120 để mã hóa kết quả của lệnh gọi formatLocalized() thành bộ ký tự utf8 15
kể từ 2. 9. 0, bạn có thể dễ dàng tùy chỉnh bản dịch 16Bạn có thể sử dụng ngôn ngữ dự phòng bằng cách chuyển theo thứ tự nhiều ngôn ngữ tới 124 17Trong ví dụ trên, nó sẽ cố gắng tìm các bản dịch trong "xx" theo thứ tự ưu tiên, sau đó là "xy" nếu thiếu, sau đó là "es", vì vậy ở đây, bạn lấy "Xday" từ "xx", "Yday" từ " Lưu ý rằng bạn cũng có thể sử dụng một trình dịch khác với 125 miễn là trình dịch đã cho thực hiện 126. Và bạn có thể nhận trình dịch mặc định chung bằng cách sử dụng 127 (và 128 và 129 cho ngôn ngữ dự phòng, setFallbackLocale có thể được gọi nhiều lần để nhận nhiều ngôn ngữ dự phòng) nhưng vì các phương thức đó sẽ thay đổi hành vi trên toàn cầu (bao gồm cả thư viện của bên thứ ba mà bạn có thể có . Bạn nên tùy chỉnh bản dịch bằng ngôn ngữ tùy chỉnh như trong ví dụ trênCarbon nhúng trình dịch mặc định mở rộng Symfony\Component\Translation\Translator Bạn có thể kiểm tra tại đây các phương thức chúng tôi đã thêm vào nó Vì vậy, sự hỗ trợ của một ngôn ngữ cho 130, các getter như 131, 132 và các biến thể ngắn được thúc đẩy bởi các ngôn ngữ được cài đặt trong hệ điều hành của bạn. Đối với các bản dịch khác, nó được hỗ trợ nội bộ nhờ cộng đồng Carbon. Bạn có thể kiểm tra những gì được hỗ trợ bằng các phương pháp sau 18Vì vậy, đây là cách mới được đề xuất để xử lý quá trình quốc tế hóa với Carbon 19Phương pháp 133 chỉ thay đổi ngôn ngữ cho phiên bản hiện tại và được ưu tiên hơn cài đặt chung. Chúng tôi đề xuất cho bạn phương pháp này để bạn không gặp xung đột với những nơi khác hoặc thư viện của bên thứ ba có thể sử dụng Carbon. Tuy nhiên, để tránh gọi 133 mỗi lần, bạn có thể sử dụng các nhà máy 10Bạn có thể gọi bất kỳ phương thức Carbon tĩnh nào trên một nhà máy (thực hiện, bây giờ, hôm qua, ngày mai, phân tích cú pháp, tạo, v.v. ) Factory (và FactoryImmutable tạo phiên bản CarbonImmutable) là cách tốt nhất để giữ mọi thứ ngăn nắp và tách biệt. Thông thường, chúng tôi khuyên bạn nên làm việc với ngày UTC, sau đó áp dụng cục bộ (hoặc với nhà máy) múi giờ và ngôn ngữ trước khi hiển thị ngày cho người dùng Những gì nhà máy thực sự làm là sử dụng tên phương thức làm hàm tạo tĩnh, sau đó gọi phương thức 135, đây là cách để nhóm trong một cài đặt cuộc gọi về ngôn ngữ, múi giờ, tràn tháng/năm, v.v. (Xem tài liệu tham khảo cho danh sách đầy đủ. ) 11 135 cũng cho phép chuyển macro cục bộ 12Cài đặt gốc có thể được thay đổi sau đó với 137 hoặc để hợp nhất cài đặt mới với cài đặt hiện có 138 và lớp để tạo có thể được khởi tạo làm đối số thứ hai của cấu trúc, sau đó được thay đổi sau đó với 139 13Trước đây đã có 140 đặt ngôn ngữ trên toàn cầu. Nhưng đối với các trình cài đặt tĩnh khác của chúng tôi, chúng tôi không khuyến khích bạn sử dụng nó. Nó phá vỡ nguyên tắc cô lập vì cấu hình sẽ áp dụng cho mọi lớp sử dụng CarbonBạn cũng có thể biết phương pháp 141 từ Carbon 1. Phương pháp này vẫn hoạt động tương tự trong Carbon 2 nhưng tốt hơn bạn nên sử dụng 142 để thay thế 143 sử dụng định dạng ISO thay vì định dạng dành riêng cho PHP và sử dụng các bản dịch bên trong thay vì các gói ngôn ngữ bạn cần cài đặt trên mọi máy mà bạn triển khai ứng dụng của mình. Phương thức 144 tương thích với phương thức định dạng momentjs, điều đó có nghĩa là bạn có thể sử dụng các chuỗi định dạng giống như bạn có thể đã sử dụng tại thời điểm từ giao diện người dùng hoặc nút. js. Dưới đây là một số ví dụ 14Bạn cũng có thể tạo ngày từ các chuỗi có định dạng ISO 15 145 sử dụng các phương thức theo ngữ cảnh cho tên ngày và tên tháng vì chúng có thể có nhiều dạng trong một số ngôn ngữ, xem các ví dụ sau 16Dưới đây là danh sách đầy đủ các sản phẩm thay thế có sẵn (ví dụ được đưa ra với 146)MãVí dụMô tảOD5Số ngày với các số thay thế, chẳng hạn như 三 cho 3 nếu ngôn ngữ là ja_JPOM1Số tháng với các số thay thế, chẳng hạn như ၀၂ cho 2 nếu ngôn ngữ là my_MMOY2017Số năm với các số thay thế, chẳng hạn như ۱۹۹۸ cho 1998 nếu ngôn ngữ là faOH1724, số giờ với các số thay thế, chẳng hạn như ႑႓ cho . 00Bù múi giờ HH. mmZZ+0000Bù múi giờ HHmmMột số định dạng macro cũng có sẵn. Dưới đây là ví dụ về từng ngôn ngữ Codeenfrjahr_______4148______4149 150 151 152 153 154 155 156 157 151______4153 155 157Khi bạn sử dụng macro- . 17Một phương pháp dịch hữu ích khác là ________ 4163 18Nếu bạn biết khoảnh khắc, thì nó cũng hoạt động theo cách tương tự. Bạn có thể chuyển ngày tham chiếu làm đối số thứ hai, ngày khác hiện được sử dụng. Và bạn có thể tùy chỉnh một hoặc nhiều định dạng bằng cách sử dụng đối số thứ hai (các định dạng để chuyển dưới dạng khóa mảng là. sameDay, next Day, next Week, last Day, last Week và sameElse) 19Nhấp vào đây để xem tổng quan về 280 ngôn ngữ (và 823 biến thể khu vực) được hỗ trợ bởi phiên bản Carbon cuối cùng aaAfar✅✅✅✅✅✅✅✅afAfrikaans✅✅❌✅✅✅✅❌agqAghem✅✅✅✅✅❌❌✅agrAguaruna✅✅✅✅✅✅✅✅akaAkan✅✅✅✅✅✅✅✅am Amharic✅✅✅✅Nếu bạn có thể thêm các bản dịch bị thiếu hoặc ngôn ngữ bị thiếu, vui lòng truy cập công cụ dịch, rất mong nhận được sự giúp đỡ của bạn Lưu ý rằng nếu bạn sử dụng Laravel 5. 5+, ngôn ngữ sẽ được đặt tự động theo lần thực thi 164 cuối cùng hiện tại. Vì vậy, 165, 144, 167 và các thuộc tính được bản địa hóa như 168 hoặc 169 sẽ được bản địa hóa một cách rõ ràngTheo mặc định, mỗi phiên bản Carbon, CarbonImmutable, CarbonInterval hoặc CarbonPeriod được liên kết với phiên bản 170 theo bộ ngôn ngữ của nó. Bạn có thể lấy và/hoặc thay đổi nó bằng cách sử dụng 171/______4172Nếu bạn thích mẫu 173, bạn có thể sử dụng 174 hoạt động giống như 175 nhưng dịch chuỗi bằng ngôn ngữ hiện tại 420Được cảnh báo rằng một số chữ cái như 176 không được hỗ trợ vì chúng không thể dịch một cách an toàn và 167 cung cấp cú pháp ngắn hơn nhưng ít khả năng hơn so với 142Bạn có thể tùy chỉnh hành vi của phương thức 175 để sử dụng bất kỳ phương thức nào khác hoặc phương thức tùy chỉnh thay vì phương thức gốc từ lớp DateTime của PHP 421Bạn có thể dịch một chuỗi từ ngôn ngữ này sang ngôn ngữ khác bằng cách sử dụng bản dịch ngày có sẵn trong Carbon 422Nếu ngôn ngữ đầu vào không được chỉ định, thay vào đó, _____4118 được sử dụng. Nếu ngôn ngữ đầu ra không được chỉ định, thì thay vào đó, hãy sử dụng 181. Bạn cũng có thể dịch bằng cách sử dụng ngôn ngữ của phiên bản với 423Bạn có thể trực tiếp sử dụng các chuỗi trong bất kỳ ngôn ngữ nào để tạo đối tượng ngày tháng với 182 424Bạn cũng có thể sử dụng "hôm nay", "hôm nay lúc 8 giờ. 00", "hôm qua", "sau ngày mai", v.v. tương đương trong ngôn ngữ nhất định Hoặc với định dạng tùy chỉnh sử dụng 183 (sử dụng mẫu 173 để thay thế) 425Phương pháp tương đương sử dụng định dạng ISO là 185 426Để nhận một số thông tin thú vị về ngôn ngữ (chẳng hạn như tên ISO hoàn chỉnh hoặc tên bản địa, vùng (ví dụ: được hiển thị trong bộ chọn ngôn ngữ), bạn có thể sử dụng 186 427Xin hãy để tôi cảm ơn một số dự án đã giúp chúng tôi rất nhiều để hỗ trợ nhiều ngôn ngữ hơn và các tính năng quốc tế hóa
Các phương pháp thử nghiệm cho phép bạn đặt phiên bản Carbon (thực hoặc giả) được trả về khi phiên bản "hiện tại" được tạo. Ví dụ được cung cấp sẽ được sử dụng khi truy xuất bất kỳ thời gian tương đối nào từ Carbon (bây giờ, hôm nay, hôm qua, tháng tới, v.v. ) 428Một ví dụ đầy đủ ý nghĩa hơn 429Các cụm từ tương đối cũng được mô phỏng theo trường hợp "bây giờ" đã cho 630Kể từ Carbon 2. 56. 0, 187 không còn ảnh hưởng đến múi giờ của phiên bản 188 mà bạn sẽ nhận được. Điều này được thực hiện bởi vì trong đời thực, 188 trả về một ngày có múi giờ từ 190. Và các bài kiểm tra nên phản ánh điều nàyBạn có thể sử dụng 191 để mô phỏng thời gian và thay đổi múi giờ mặc định bằng cách sử dụng 192 631Danh sách các từ được coi là sửa đổi tương đối là
Xin lưu ý rằng tương tự như các phương thức next(), previous() và modify(), một số công cụ sửa đổi tương đối này sẽ đặt thời gian thành 00. 00. 00 Cả 193 và 194 đều có thể lấy múi giờ làm đối số thứ hai 632Xem Carbonite để biết thêm các tính năng thử nghiệm Carbon nâng cao Carbonite là một gói bổ sung mà bạn có thể dễ dàng cài đặt bằng trình soạn nhạc. 195 sau đó sử dụng để du hành thời gian trong các bài kiểm tra đơn vị của bạn khi bạn kể một câu chuyệnThêm nhập khẩu 196 ở đầu tệp 633Các getters được triển khai thông qua phương thức 197 của PHP. Điều này cho phép bạn truy cập giá trị như thể đó là thuộc tính chứ không phải là lệnh gọi hàm 634Các setters sau đây được triển khai thông qua phương thức 198 của PHP. Thật tốt khi lưu ý ở đây rằng không có setters nào, ngoại trừ rõ ràng là đặt múi giờ rõ ràng, sẽ thay đổi múi giờ của thể hiện. Cụ thể, việc đặt dấu thời gian sẽ không đặt múi giờ tương ứng thành UTC 635Nếu bạn đã quen thuộc với momentjs, bạn sẽ thấy các phương pháp tuần đều hoạt động giống nhau. Hầu hết chúng đều có biến thể iso{Method}. Các phương thức tuần tuân theo các quy tắc của ngôn ngữ hiện tại (ví dụ: với en_US, ngôn ngữ mặc định, ngày đầu tuần là Chủ nhật và tuần đầu tiên của năm là tuần chứa ngày 1 tháng 1). Các phương pháp của ISO tuân theo tiêu chuẩn ISO 8601, nghĩa là các tuần bắt đầu bằng Thứ Hai và tuần đầu tiên của năm là tuần chứa ngày 4 tháng Giêng 636Bạn có thể gọi bất kỳ đơn vị cơ sở nào dưới dạng setter hoặc một số setters được nhóm 637Bạn cũng có thể đặt ngày và giờ riêng biệt với các đối tượng DateTime/Carbon khác 638Hàm PHP 199 được triển khai. Điều này đã được thực hiện như một số hệ thống bên ngoài (ví dụ:. Twig) xác thực sự tồn tại của một thuộc tính trước khi sử dụng nó. Điều này được thực hiện bằng cách sử dụng phương pháp 100 hoặc 101. Bạn có thể đọc thêm về những điều này trên trang web PHP. __isset(), ngay lập tức(), trống() 639Tất cả các phương thức 102 có sẵn đều dựa trên phương thức của lớp cơ sở DateTime. định dạng(). Bạn sẽ nhận thấy phương thức 103 được xác định cho phép in phiên bản Carbon dưới dạng chuỗi thời gian ngày tháng đẹp mắt khi được sử dụng trong ngữ cảnh chuỗi 0Bạn cũng có thể đặt định dạng __toString() mặc định (mặc định là 104) được sử dụng khi xảy ra hiện tượng tung hứng kiểu 1Là một phần của cài đặt, 105 cũng có thể được sử dụng trong các nhà máy. Nó cũng có thể là một bao đóng, vì vậy bạn có thể chạy bất kỳ mã nào trên chuỗi truyềnNếu bạn sử dụng Carbon 1 hoặc muốn áp dụng nó trên toàn cầu làm định dạng mặc định, bạn có thể sử dụng 2Ghi chú. Để được hỗ trợ bản địa hóa, hãy xem phần Bản địa hóa Sau đây là các hàm bao cho các định dạng phổ biến được cung cấp trong lớp DateTime 3____24Bạn có thể sử dụng phương pháp 106 để chuyển đổi nhiều thứ thành một phiên bản 108 dựa trên một phiên bản nguồn nhất định được sử dụng làm tài liệu tham khảo khi cần. Nó trả về một thể hiện mới 5So sánh đơn giản được cung cấp thông qua các chức năng sau. Hãy nhớ rằng việc so sánh được thực hiện theo múi giờ UTC nên mọi thứ không phải lúc nào cũng như vẻ ngoài của chúng 6Các phương thức đó sử dụng phép so sánh tự nhiên do PHP 108 cung cấp, vì vậy tất cả chúng sẽ bỏ qua mili/micro giây trước PHP 7. 1, sau đó tính đến chúng bắt đầu bằng 7. 1Để xác định xem phiên bản hiện tại có nằm giữa hai phiên bản khác hay không, bạn có thể sử dụng phương pháp có tên thích hợp là 109 (hoặc bí danh 110). Tham số thứ ba cho biết liệu có nên thực hiện so sánh bằng. Giá trị mặc định là true xác định xem nó nằm giữa hay bằng các ranh giới 7ồ. Bạn đã quên min() và max()? . Điều đó cũng được bao phủ bởi các phương pháp có tên thích hợp là 111 và 112 hoặc bí danh 113 và 114. Như thường lệ, tham số mặc định hiện tại nếu null được chỉ định 8Để xử lý các trường hợp được sử dụng nhiều nhất, có một số chức năng trợ giúp đơn giản mà hy vọng là rõ ràng từ tên của chúng. Đối với các phương pháp so sánh với 68 (ví dụ:. isToday()) theo một cách nào đó, thì 68 được tạo trong cùng múi giờ với ví dụ 9DateTime mặc định cung cấp một vài phương pháp khác nhau để dễ dàng cộng và trừ thời gian. Có 117, 118 và 119. 120 là phiên bản nâng cao của 117 có thể lấy chuỗi định dạng ngày/giờ kỳ diệu, 122, nó phân tích cú pháp và áp dụng sửa đổi trong khi 118 và 119 có thể lấy cùng loại chuỗi, khoảng thời gian ( 125 hoặc 126) hoặc số lượng+đơn vị . Nhưng bạn vẫn có thể truy cập các phương thức gốc của lớp 127 bằng cách sử dụng 128 và 129 0Để giải trí, bạn cũng có thể chuyển các giá trị âm cho 130, thực tế đó là cách triển khai 131P. S. Đừng lo lắng nếu bạn quên và sử dụng 132 hoặc 133, tôi hỗ trợ bạn;)Theo mặc định, Carbon dựa trên hành vi DateTime của lớp cha bên dưới PHP. Kết quả là việc cộng hoặc trừ các tháng có thể bị tràn, ví dụ 1Kể từ Carbon 2, bạn có thể đặt hành vi tràn cục bộ cho từng phiên bản 2Điều này sẽ áp dụng cho các phương pháp 134, 135, 136, 137 và các phương pháp quý tương đương. Nhưng nó sẽ không áp dụng cho các đối tượng khoảng cách hoặc chuỗi như 138 hoặc 139Trình trợ giúp tĩnh tồn tại nhưng không được dùng nữa. Nếu bạn chắc chắn cần áp dụng cài đặt chung hoặc hoạt động với phiên bản 1 của Carbon, hãy kiểm tra phần trợ giúp tĩnh tràn Bạn có thể ngăn tràn với 140 3Phương pháp 141 cho phép bạn biết nếu tràn hiện đang được kích hoạt 4Từ phiên bản 1. 23. 0, kiểm soát tràn cũng có sẵn trên các năm 5Bạn cũng có thể sử dụng 142, 143, 144 và 145 (hoặc các phương pháp số ít không có 146 thành "tháng") để cộng/phụ các tháng rõ ràng có hoặc không có tràn bất kể chế độ hiện tại và tương tự cho bất kỳ đơn vị lớn hơn nào (quý, năm 6Điều tương tự có sẵn trong nhiều năm Bạn cũng có thể kiểm soát tràn cho bất kỳ thiết bị nào khi làm việc với đầu vào không xác định 7Bất kỳ đơn vị có thể sửa đổi nào cũng có thể được chuyển làm đối số của các phương thức đó 8Khi 108 mở rộng 127, nó kế thừa các phương thức của nó, chẳng hạn như 149 lấy đối tượng ngày thứ hai làm đối số và trả về một thể hiện 125Chúng tôi cũng cung cấp 151 hành động giống như 149 nhưng trả về một phiên bản 126. Kiểm tra chương CarbonInterval để biết thêm thông tin. Carbon cũng thêm các phương pháp khác cho từng đơn vị, chẳng hạn như 154, 155, v.v. Tất cả các phương thức 151 và 157 và 158 đều có thể nhận 2 đối số tùy chọn. ngày để so sánh với (nếu thiếu, bây giờ được sử dụng thay thế) và một tùy chọn boolean tuyệt đối ( 159 theo mặc định) làm cho phương thức trả về một giá trị tuyệt đối bất kể ngày nào lớn hơn ngày kia. Nếu được đặt thành 160, nó sẽ trả về giá trị âm khi phiên bản mà phương thức được gọi lớn hơn ngày được so sánh (đối số đầu tiên hoặc bây giờ). Lưu ý rằng nguyên mẫu 149 khác. đối số đầu tiên của nó (ngày) là bắt buộc và đối số thứ hai của nó (tùy chọn tuyệt đối) mặc định là 160Các hàm này luôn trả về tổng chênh lệch được biểu thị trong thời gian đã chỉ định được yêu cầu. Điều này khác với hàm 149 của lớp cơ sở trong đó khoảng thời gian 122 giây sẽ được trả về là 2 phút 2 giây thông qua phiên bản 125. Hàm 165 sẽ trả về 2 trong khi 166 sẽ trả về 122. Tất cả các giá trị được cắt bớt và không được làm tròn. Mỗi chức năng bên dưới có một tham số đầu tiên mặc định là phiên bản Carbon để so sánh hoặc null nếu bạn muốn sử dụng 68. Tham số thứ 2 lại là tùy chọn và cho biết bạn muốn giá trị trả về là giá trị tuyệt đối hay giá trị tương đối có thể có dấu 168 (âm) nếu ngày được chuyển vào nhỏ hơn phiên bản hiện tại. Điều này sẽ mặc định là true, trả về giá trị tuyệt đối 9Các phương pháp này có kết quả cắt ngắn. Điều đó có nghĩa là 169 trả về 1 cho bất kỳ sự khác biệt nào giữa 1 được bao gồm và 2 bị loại trừ. Nhưng các phương pháp tương tự có sẵn cho kết quả float 20⚠️ Lưu ý quan trọng về thời gian tiết kiệm ánh sáng ban ngày (DST), theo mặc định PHP DateTime không tính đến DST, điều đó có nghĩa là ví dụ một ngày chỉ có 23 giờ như ngày 30 tháng 3 năm 2014 ở London sẽ được tính là 24 giờ ⚠️ Hãy cẩn thận với 170, điều này có thể mang lại cho bạn kết quả thấp hơn ( 171) trong khoảng thời gian có nhiều ngày hơn ( 172) do số ngày trong tháng có thể thay đổi (đặc biệt là tháng Hai). Theo mặc định, chúng tôi dựa vào kết quả của DateTime. diff nhạy cảm với tràn. Xem vấn đề #2264 để biết các phép tính thay thế 21Carbon cũng tuân theo hành vi này để thêm/phụ/diff giây/phút/giờ. Nhưng chúng tôi cung cấp các phương pháp để hoạt động với giờ thực bằng cách sử dụng dấu thời gian 22Theo cách tương tự, bạn có thể sử dụng 173 và 174 trên bất kỳ thiết bị nàoNgoài ra còn có các chức năng lọc đặc biệt 175, 176 và 177, để giúp bạn lọc sự khác biệt theo ngày, giờ hoặc khoảng thời gian tùy chỉnh. Ví dụ để đếm ngày cuối tuần giữa hai trường hợp 23Tất cả phương thức diffIn*Filtered lấy 1 bộ lọc có thể gọi được làm tham số bắt buộc và đối tượng ngày làm tham số thứ hai tùy chọn, nếu thiếu, bây giờ được sử dụng. Bạn cũng có thể chuyển true làm tham số thứ ba để nhận các giá trị tuyệt đối Để xử lý nâng cao các ngày trong tuần/cuối tuần, hãy sử dụng các công cụ sau 24Con người đọc 178 dễ dàng hơn so với 30 ngày trước. Đây là một chức năng phổ biến được thấy trong hầu hết các thư viện ngày, vì vậy tôi nghĩ rằng tôi cũng sẽ thêm nó vào đây. Đối số duy nhất cho hàm là đối tượng Carbon khác để tìm khác biệt và tất nhiên nó mặc định là 68 nếu không được chỉ địnhPhương thức này sẽ thêm một cụm từ sau giá trị chênh lệch so với phiên bản và phiên bản được truyền trong phiên bản. Có 4 khả năng
Bạn cũng có thể chuyển 180 làm tham số thứ 2 để xóa các công cụ sửa đổi trước đây, kể từ bây giờ, v.v. 181, 182 để nhận các công cụ sửa đổi trước hoặc sau đó, 183 để nhận các công cụ sửa đổi trước hoặc sau hoặc 184 (chế độ mặc định) để nhận các công cụ sửa đổi trước/từ bây giờ nếu đối số 2 giây là null hoặc trước/sau nếu khôngBạn có thể chuyển 159 làm tham số thứ 3 để sử dụng cú pháp ngắn nếu có ở ngôn ngữ được sử dụng. 186Bạn có thể chuyển một số từ 1 đến 6 làm tham số thứ 4 để nhận được sự khác biệt ở nhiều phần (khác biệt chính xác hơn). 187Phiên bản 188 có thể là một DateTime, một phiên bản Carbon hoặc bất kỳ đối tượng nào triển khai DateTimeInterface, nếu một chuỗi được truyền, nó sẽ được phân tích cú pháp để lấy một phiên bản Carbon và nếu 86 được truyền, thay vào đó, 188 sẽ được sử dụngĐể tránh có quá nhiều đối số và trộn lẫn thứ tự, bạn có thể sử dụng các phương thức dài dòng
Tái bút. Các đối số 188 và 4200 có thể được hoán đổi khi cần 25Bạn cũng có thể thay đổi ngôn ngữ của chuỗi bằng cách sử dụng 4201 trước lệnh gọi diffForHumans(). Xem phần bản địa hóa để biết thêm chi tiếtkể từ 2. 9. 0 tham số diffForHumans() có thể được truyền dưới dạng một mảng 26Nếu đối số bị bỏ qua hoặc được đặt thành 86, thì chỉ có 4203 được bật. tùy chọn có sẵn là
Sử dụng toán tử đường ống để bật/tắt nhiều tùy chọn cùng một lúc, ví dụ. 4223Bạn cũng có thể sử dụng 4224, 4225, 4226 để thay đổi các tùy chọn mặc định và 4227 để nhận các tùy chọn mặc định nhưng bạn nên tránh sử dụng nó vì nó ở trạng thái tĩnh, nó có thể xung đột với lệnh gọi từ các phần mã khác/thư viện bên thứ baBí danh và phương pháp đảo ngược được cung cấp cho mục đích ngữ nghĩa
Nhóm các phương thức này thực hiện các sửa đổi hữu ích đối với phiên bản hiện tại. Hầu hết trong số họ là tự giải thích từ tên của họ. hoặc ít nhất là nên. Bạn cũng sẽ nhận thấy rằng các phương thức startOfXXX(), next() và previous() đặt thời gian là 00. 00. 00 và các phương thức endOfXXX() đặt thời gian thành 23. 59. 59 cho đơn vị lớn hơn ngày Điều duy nhất hơi khác một chút là chức năng 4241. Nó di chuyển phiên bản của bạn đến ngày ở giữa giữa chính nó và đối số Carbon được cung cấpPhương pháp 117 bản địa mạnh mẽ của 127 có sẵn không bị ảnh hưởng. Nhưng chúng tôi cũng cung cấp một phiên bản nâng cao của nó. 120 cho phép một số cú pháp bổ sung như 4245 và được gọi nội bộ bởi 4246 và 4247 27Làm tròn cũng có sẵn cho bất kỳ đơn vị 28Các hằng số sau được định nghĩa trong lớp Carbon 29 60Các phiên bản Carbon có thể được đánh số thứ tự (bao gồm CarbonImmutable, CarbonInterval và CarbonPeriod) 61Các phiên bản Carbon có thể được mã hóa và giải mã từ JSON. Kể từ phiên bản 2. 4, chúng tôi yêu cầu rõ ràng phần mở rộng PHP JSON. Nó sẽ không ảnh hưởng gì vì tiện ích mở rộng này được đóng gói theo mặc định với PHP. Nếu tiện ích mở rộng bị tắt, hãy lưu ý rằng bạn sẽ bị khóa trên 2. 3. Nhưng bạn vẫn có thể sử dụng 4248 khi cập nhật/cài đặt trình soạn thảo để nâng cấp, sau đó điền vào giao diện 4249 bị thiếu bằng cách thêm JsonSerializable. php 62Bạn có thể sử dụng 4250 để tùy chỉnh tuần tự hóa 63Nếu bạn muốn áp dụng điều này trên toàn cầu, trước tiên hãy cân nhắc sử dụng nhà máy, hoặc nếu bạn sử dụng Carbon 1, bạn có thể sử dụng 64Phương thức 4251 cho phép bạn gọi hàm được cung cấp cho 4252 hoặc kết quả của 4253 nếu không chỉ định tuần tự hóa tùy chỉnhBạn có thể quen thuộc với khái niệm macro nếu bạn đã quen làm việc với Laravel và các đối tượng như phản hồi hoặc bộ sưu tập. Các macro carbon hoạt động giống như Laravel 4254 TraitGọi phương thức 4255 với tên macro của bạn làm đối số thứ nhất và đóng làm đối số thứ hai. Điều này sẽ làm cho hành động đóng có sẵn trên tất cả các phiên bản Carbon 65Lưu ý rằng bao đóng đứng trước 4256 và sử dụng 4257 (có sẵn từ phiên bản 2. 25. 0) thay vì 4258. Đây là cách tiêu chuẩn để tạo các macro Carbon và cách này cũng áp dụng cho các macro trên các lớp khác ( 4259, 126 và 4261)Bằng cách làm theo mẫu này, bạn đảm bảo rằng các nhà phát triển khác trong nhóm của bạn (và bạn trong tương lai) có thể tin cậy một cách an toàn vào xác nhận. 4262 tương đương với 4263. Điều này làm cho việc sử dụng macro trở nên nhất quán và có thể dự đoán được, đồng thời đảm bảo cho nhà phát triển rằng bất kỳ macro nào cũng có thể được gọi một cách an toàn ở dạng tĩnh hoặc độngĐiều đáng buồn là IDE sẽ không phải là phương thức macro của bạn (không có tính năng tự động hoàn thành cho phương thức 4264 trong ví dụ trên). Nhưng đó không còn là vấn đề nhờ công cụ CLI của chúng tôi. carbon-cli cho phép bạn tạo các tệp trợ giúp IDE cho mixin và macro của bạnMacro là công cụ hoàn hảo để xuất ngày với một số cài đặt hoặc tùy chọn người dùng 66Macro cũng có thể được nhóm trong các lớp và được áp dụng với 4265 67Kể từ Carbon 2. 23. 0, cũng có thể rút ngắn cú pháp mixin bằng cách sử dụng các đặc điểm 68Bạn có thể kiểm tra xem macro (bao gồm mixin) có khả dụng với 4266 hay không và truy xuất lệnh đóng macro với 4267 69Một macro bắt đầu bằng 4268 theo sau là một chữ cái viết hoa sẽ tự động cung cấp một bộ thu động trong khi một macro bắt đầu bằng 4269 và theo sau là một chữ cái viết hoa sẽ cung cấp một bộ thiết lập động 00Bạn cũng có thể chặn bất kỳ cuộc gọi nào khác bằng macro chung 01Và đoán xem? 02 03Chúng tôi cung cấp tiện ích mở rộng PHPStan ngay lập tức mà bạn có thể đưa vào phpstan của mình. đèn neon 04Nếu bạn đang sử dụng Laravel, bạn có thể cân nhắc sử dụng larastan, cung cấp hỗ trợ đầy đủ các tính năng của Laravel trong PHPStan (bao gồm cả Carbon macro). Ngoài ra, để bao gồm tệp neon, bạn có thể cài đặt phpstan/extension-installer 05Sau đó, thêm tệp nơi macro Carbon và mixin của bạn được xác định trong mục bootstrapFiles 06Kiểm tra cmixin/thời gian làm việc (bao gồm cả cmixin/ngày làm việc) để xử lý cả ngày lễ và giờ làm việc với nhiều tính năng nâng cao 07Tín dụng. meteguerlek (#1191) 08Tín dụng. afrojuju1 (#1063) 09Tín dụng. andreisena, 36864 (#1052) Kiểm tra cmixin/ngày làm việc để có trình xử lý ngày lễ hoàn chỉnh hơn 10Tín dụng. vẽ lại (#132) 11Tín dụng. thiagocordeiro (#927) Trong khi sử dụng macro là cách được đề xuất để thêm các phương thức hoặc hành vi mới vào Carbon, bạn có thể tiến xa hơn và mở rộng chính lớp đó, điều này cho phép một số cách thay thế để ghi đè lên các phương thức chính; 12Macro sau đây cho phép bạn chọn múi giờ chỉ bằng tên thành phố (bỏ qua lục địa). Hoàn hảo để làm cho bài kiểm tra đơn vị của bạn trôi chảy hơn 13Lớp CarbonInterval được kế thừa từ lớp DateInterval của PHP Phương pháp 12 4272 và 4273 mong đợi các số cho mỗi đơn vị theo cùng một thứ tự so với 83 và có thể được sử dụng một cách thuận tiện với PHP 8 17Nếu bạn thấy mình kế thừa một phiên bản 4275 từ một thư viện khác, đừng lo. Bạn có thể tạo phiên bản 126 thông qua hàm 109 thân thiện 18Và ngược lại, bạn có thể trích xuất một 125 thô từ 126 và thậm chí truyền nó vào bất kỳ lớp nào mở rộng 125 19Bạn có thể so sánh các khoảng thời gian theo cùng một cách so với các đối tượng Carbon, sử dụng 4281, 4282 4283, 4284, 4285, 4286, 109, 4288, v.v.Những người trợ giúp khác, nhưng hãy lưu ý rằng việc triển khai cung cấp cho những người trợ giúp để xử lý hàng tuần nhưng chỉ tiết kiệm được vài ngày. Số tuần được tính dựa trên tổng số ngày của phiên bản hiện tại 20CarbonInterval mở rộng DateInterval và bạn có thể tạo cả hai bằng định dạng thời lượng ISO-8601 21Khoảng carbon có thể được tạo ra từ các chuỗi thân thiện với con người nhờ phương pháp 4289 22Hoặc tạo nó từ một đối tượng 125 / 126 khác 23Lưu ý tháng viết tắt "mo" để phân biệt với phút và toàn bộ cú pháp không phân biệt chữ hoa chữ thường Nó cũng có một 4292 tiện dụng, được ánh xạ dưới dạng triển khai 103, in khoảng thời gian cho con người 24 4294 cho phép các đối số tùy chọn giống như 4295 ngoại trừ 4200 được đặt thành -1 (không giới hạn) theo mặc định. Xem các tùy chọn 4295Như bạn có thể thấy, bạn có thể thay đổi ngôn ngữ của chuỗi bằng cách sử dụng 4298Đối với Carbon, bạn có thể sử dụng phương thức tạo để trả về một phiên bản mới của CarbonInterval từ các khoảng hoặc chuỗi khác 25Các phương pháp cộng, phụ (hoặc trừ), lần, chia sẻ, nhân và chia cho phép thực hiện các phép tính khoảng thời gian tiếp theo 26Bạn nhận được phép tính thuần túy từ đơn vị đầu vào của mình theo đơn vị. Để xếp từng phút thành giờ, giờ thành ngày, v.v. Sử dụng phương pháp xếp tầng 27Các yếu tố mặc định là
CarbonIntervals không mang ngữ cảnh nên chúng không thể chính xác hơn (không có DST, không có năm nhuận, không xem xét độ dài tháng hoặc độ dài năm thực). Nhưng bạn hoàn toàn có thể tùy chỉnh các yếu tố đó. Ví dụ để xử lý nhật ký thời gian làm việc 28Có thể chuyển đổi một khoảng thời gian thành một đơn vị nhất định (sử dụng các yếu tố xếp tầng được cung cấp) 29Phương pháp và thuộc tính 4299 cần các khoảng thời gian xếp tầng, nếu khoảng thời gian của bạn có thể bị tràn, hãy xếp tầng chúng trước khi gọi các tính năng này 30Bạn cũng có thể lấy thông số ISO 8601 của khoảng thời gian với ________ 16300 31Cũng có thể lấy nó từ một đối tượng DateInterval kể từ trình trợ giúp tĩnh 32Danh sách các khoảng ngày có thể được sắp xếp nhờ các phương pháp 6301 và 6302 33Ngoài các khoảng thời gian cố định, Khoảng thời gian động có thể được mô tả bằng chức năng chuyển từ ngày này sang ngày khác 34Bạn có thể truy cập và sửa đổi định nghĩa bước đóng bằng cách sử dụng 6303 và 6304 (trình thiết lập có thể lấy 86 để xóa nó để nó trở thành một khoảng thời gian cố định đơn giản. Và miễn là khoảng thời gian có một bước, nó sẽ được ưu tiên hơn tất cả các đơn vị cố định mà nó chứaBạn có thể gọi 6306 để áp dụng khoảng thời gian động hoặc tĩnh hiện tại cho một ngày ( 127, 108 hoặc những ngày không thay đổi) một cách tích cực (hoặc chuyển một cách tiêu cực 159 làm đối số thứ hai) 35Kết xuất các giá trị khoảng dưới dạng một mảng với 36Cuối cùng, một phiên bản CarbonInterval có thể được chuyển đổi thành một phiên bản CarbonPeriod bằng cách gọi 6310 với các đối số bổ sungTôi nghe bạn hỏi phiên bản CarbonPeriod là gì. Ồ. Chuyển đổi hoàn hảo sang chương tiếp theo của chúng tôi CarbonPeriod là phiên bản DatePeriod thân thiện với con người với nhiều phím tắt 37Một CarbonPeriod có thể được xây dựng theo một số cách
Ngày có thể được cung cấp dưới dạng phiên bản DateTime/Carbon, các chuỗi tuyệt đối như "2007-10-15 15. 00" hoặc chuỗi tương đối, ví dụ "thứ hai tới". Khoảng thời gian có thể được cung cấp dưới dạng ví dụ DateInterval/CarbonInterval, thông số kỹ thuật khoảng thời gian ISO 8601 như "P4D" hoặc chuỗi có thể đọc được của con người, ví dụ: "4 ngày" Hàm tạo mặc định và các phương thức 83 rất linh hoạt về loại đối số và thứ tự, vì vậy nếu bạn muốn chính xác hơn, nên sử dụng cú pháp thông thạo. Mặt khác, bạn có thể chuyển mảng giá trị động cho 6316, nó sẽ thực hiện công việc xây dựng một thể hiện mới với mảng đã cho dưới dạng danh sách các đối sốCarbonPeriod triển khai giao diện Iterator. Nó có nghĩa là nó có thể được truyền trực tiếp vào vòng lặp 6317 38Các tham số có thể được sửa đổi trong quá trình lặp lại 39Giống như DatePeriod, CarbonPeriod hỗ trợ thông số khoảng thời gian ISO 8601 Lưu ý rằng DatePeriod gốc coi số lần lặp lại là số lần lặp lại khoảng thời gian. Do đó, nó sẽ cho một kết quả ít hơn khi loại trừ ngày bắt đầu. Việc giới thiệu các bộ lọc tùy chỉnh trong CarbonPeriod khiến việc biết số lượng kết quả trở nên khó khăn hơn. Vì lý do đó, chúng tôi đã thay đổi cách triển khai một chút và các lần lặp lại được coi là giới hạn chung cho số ngày được trả về 40Bạn có thể truy xuất dữ liệu từ khoảng thời gian với nhiều getters 41Các getters bổ sung cho phép bạn truy cập các kết quả dưới dạng một mảng 42Lưu ý rằng nếu bạn có ý định làm việc bằng cách sử dụng các hàm trên, bạn nên lưu kết quả của lệnh gọi 6318 vào một biến và sử dụng nó thay vì mỗi lệnh gọi thực hiện một vòng lặp nội bộ đầy đủĐể thay đổi các tham số, bạn có thể sử dụng các phương thức setter 43Bạn có thể thay đổi các tùy chọn bằng cách sử dụng 6319 để thay thế tất cả các tùy chọn nhưng bạn cũng có thể thay đổi chúng một cách riêng biệt 44Bạn có thể kiểm tra xem 2 kỳ có trùng nhau hay không 45Như đã đề cập trước đó, theo tiêu chuẩn ISO 8601, số lần lặp lại là số lần khoảng thời gian phải được lặp lại. Do đó, DatePeriod gốc sẽ thay đổi số lượng ngày được trả về tùy thuộc vào việc loại trừ ngày bắt đầu. Trong khi đó, CarbonPeriod dễ tha thứ hơn về mặt đầu vào và cho phép các bộ lọc tùy chỉnh, coi các lần lặp lại là giới hạn tổng thể cho số ngày được trả về 46Có thể dễ dàng lọc các ngày được trả về bởi DatePeriod. Chẳng hạn, có thể sử dụng các bộ lọc để bỏ qua một số ngày nhất định hoặc chỉ lặp lại trong các ngày làm việc hoặc cuối tuần. Một chức năng lọc sẽ trả về 159 để chấp nhận một ngày, 160 để bỏ qua nó nhưng tiếp tục tìm kiếm hoặc 6322 để kết thúc quá trình lặp lại 47Bạn cũng có thể bỏ qua một hoặc nhiều giá trị bên trong vòng lặp 48 6323 cho phép bạn truy xuất tất cả các bộ lọc được lưu trữ trong một khoảng thời gian. Nhưng hãy lưu ý giới hạn số lần lặp lại và ngày kết thúc sẽ xuất hiện trong mảng được trả về khi chúng được lưu trữ nội bộ dưới dạng bộ lọc 49Các bộ lọc được lưu trữ trong ngăn xếp và có thể được quản lý bằng một bộ phương thức đặc biệt 50Thứ tự thêm bộ lọc có thể ảnh hưởng đến hiệu suất và kết quả, vì vậy bạn có thể sử dụng 6324 để thêm bộ lọc vào cuối ngăn xếp; . Bạn thậm chí có thể sử dụng 6326 để thay thế tất cả các bộ lọc. Lưu ý rằng bạn sẽ phải giữ đúng định dạng của ngăn xếp và nhớ về các bộ lọc nội bộ để biết giới hạn lặp lại và ngày kết thúc. Ngoài ra, bạn có thể sử dụng phương pháp 6327 rồi thêm từng bộ lọc mớiVí dụ: khi bạn thêm bộ lọc tùy chỉnh giới hạn số ngày thử, kết quả sẽ khác nếu bạn thêm bộ lọc đó trước hoặc sau bộ lọc ngày trong tuần 51Lưu ý rằng bộ lọc lặp lại tích hợp không hoạt động theo cách này. Thay vào đó, nó dựa trên khóa hiện tại chỉ được tăng một lần cho mỗi mục, bất kể phải kiểm tra bao nhiêu ngày trước khi tìm thấy ngày hợp lệ. Thủ thuật này làm cho nó hoạt động như nhau nếu bạn đặt nó ở đầu hoặc ở cuối ngăn xếp Một số bí danh đã được thêm vào để đơn giản hóa việc xây dựng CarbonPeriod 52CarbonPeriod có thể dễ dàng chuyển đổi thành chuỗi có thể đọc được của con người và thông số kỹ thuật ISO 8601 53Theo mặc định, sử dụng và trả về phiên bản Carbon, nhưng bạn có thể dễ dàng đặt/lấy lớp ngày để sử dụng để lấy ngày không thay đổi chẳng hạn hoặc bất kỳ lớp nào triển khai CarbonInterface 54CarbonPeriod có các phương thức trợ giúp 6328 và 6329 55Như tất cả các lớp Carbon khác, 4261 có phương thức 6331 để chuyển đổi nó 56Bạn có thể kiểm tra xem thời gian có tự theo sau không. Giai đoạn A theo sau giai đoạn B nếu ngày lặp lại đầu tiên của B bằng ngày lặp lại cuối cùng của A + khoảng thời gian của A. Ví dụ: 6332 theo sau 6333 (giả sử cả đầu và cuối đều không bị loại trừ thông qua tùy chọn cho các khoảng thời gian đó và giả sử các khoảng thời gian đó là khoảng thời gian (1 ngày) 57Phương pháp 6334 cho phép bạn kiểm tra xem một ngày có nằm trong khoảng thời gian không 58So sánh bao gồm bắt đầu và kết thúc trừ khi bạn loại trừ chúng trong tùy chọn và đối với nó liên quan đến 6334, việc loại trừ chỉ loại trừ ngày chính xác, vì vậy 59Bạn có thể sử dụng các phương pháp so sánh bắt đầu/kết thúc (bỏ qua các loại trừ) để so sánh chính xác hơn
Bắt đầu với Carbon 2, các múi giờ hiện được xử lý bằng một lớp chuyên dụng 6349 mở rộng DateTimeZone 60Múi giờ mặc định được cung cấp bởi date_default_timezone_get nên nó sẽ được điều khiển bởi ngày cài đặt INI. múi giờ nhưng bạn thực sự nên ghi đè nó ở cấp ứng dụng bằng cách sử dụng date_default_timezone_set và bạn nên đặt nó thành 6350, nếu bạn đã sẵn sàng hoặc đã sử dụng múi giờ khác làm mặc định, vui lòng đọc bài viết sau. Luôn sử dụng ngày và giờ UTCNó giải thích tại sao UTC là một tiêu chuẩn đáng tin cậy. Và phương pháp hay nhất này thậm chí còn quan trọng hơn trong PHP vì API DateTime của PHP có nhiều lỗi với các thay đổi về độ lệch và múi giờ DST. Một số trong số chúng đã xuất hiện trên các phiên bản nhỏ và thậm chí trên các phiên bản vá lỗi (vì vậy bạn có thể nhận được các kết quả khác nhau khi chạy cùng một mã trên PHP 7. 1. 7 và 7. 1. 8 chẳng hạn) và một số lỗi thậm chí chưa được sửa. Vì vậy, chúng tôi thực sự khuyên bạn nên sử dụng UTC ở mọi nơi và chỉ thay đổi múi giờ khi bạn muốn hiển thị ngày. Xem ví dụ macro đầu tiên của chúng tôi Trong khi, múi giờ khu vực ("Lục địa/Thành phố") có thể có DST và do đó có phần bù thay đổi trong năm, múi giờ phần bù có phần bù cố định không đổi 61Bạn cũng có thể chuyển đổi múi giờ của vùng thành múi giờ bù và ngược lại 62Bạn có thể tạo một 6349 từ các giá trị hỗn hợp bằng cách sử dụng phương pháp 109 63Tương tự, 6353 trả về 160 nếu bạn chuyển một giá trị không chính xác (chẳng hạn như tháng âm) nhưng nó đưa ra một ngoại lệ ở chế độ nghiêm ngặt. 6355 giống như 83 nhưng đưa ra một ngoại lệ ngay cả khi không ở chế độ nghiêm ngặtNếu bạn định chuyển từ Carbon 1 sang Carbon 2, vui lòng lưu ý những thay đổi vi phạm sau đây mà bạn nên quan tâm Làm cách nào để có được tháng hiện tại trong Laravel bằng Carbon?$now = Cacbon\Cacbon. hiện nay(); . Bên cạnh đó, nếu đó là tất cả những gì bạn đang sử dụng Carbon trong lớp đó, bạn chỉ có thể sử dụng phương thức PHP date() mặc định nếu bạn muốn sử dụng ít phụ thuộc hơn. Assuming the current month was January, you would receive '01' from that format call. As an aside, if that's all you're using Carbon for in that class, you could just use the default PHP date() method if you feel like using less dependencies.
Làm thế nào để có được tháng này trong Laravel?Để lấy dữ liệu tháng hiện tại trong Laravel
. -> get([ 'name' , 'created_at' ]); Truy vấn này người dùng sử dụng phương thức laravel whereMonth, whereYear và get().
Cách lấy tên tháng hiện tại trong Laravel?Làm cách nào để lấy tên tháng từ ngày trong Laravel? . ví dụ 1. sử dụng Carbon \ Carbon; . $myDate = '07/01/2020'; . createFromFormat('m/d/Y', $myDate);. đầu ra. Tháng bảy ví dụ 2. sử dụng Carbon \ Carbon; . $date = Carbon. hiện nay(); Làm cách nào để có được năm hiện tại bằng Carbon trong Laravel?Làm cách nào để tôi chỉ nhận được một năm từ carbon Laravel? . Nhận năm từ ngày. sử dụng Carbon \ Carbon; . $ myDate = '12/08/2020'; đầu ra. chuỗi(4) "2020" Nhận năm hiện tại. sử dụng Carbon \ Carbon; . $date = Carbon. bây giờ()-> định dạng('Y'); |