Cách lưu trữ ngày giờ hiện tại trong Laravel
Tại một số thời điểm, hầu hết mọi ứng dụng Laravel đều cần hoạt động với ngày và giờ. Nhưng việc quản lý ngày và giờ đôi khi phức tạp một cách lố bịch, vì các múi giờ. Bạn lưu trữ ngày và giờ ở múi giờ nào? Show
May mắn thay, có Carbon. một tiện ích mở rộng API PHP đơn giản cho DateTime. Điều đó nghe có vẻ rất phức tạp, nhưng nó thực sự không. Laravel sử dụng Carbon theo mặc định, nhưng tài liệu hầu như không nói về nó. Trong hướng dẫn này, tôi sẽ chỉ cho bạn tất cả các cách quan trọng để bạn có thể sử dụng Carbon để quản lý Ngày giờ và múi giờ trong Laravel Cacbon là gì?Carbon là một gói PHP giúp xử lý thời gian và múi giờ trôi chảy và dễ đọc hơn nhiều. Nó liên quan đến rất nhiều thứ, như
Đầu tiên, chính xác một datetime là gì? . Nó bao gồm ba phần
Ba đặc điểm này cho phép bạn chỉ ra thời điểm chính xác đó. Sau khi bạn đã xác định các khoảnh khắc của mình, bạn có thể bắt đầu chơi với nó bằng cách chuyển đổi nó sang các múi giờ khác và tính toán sự khác biệt Bạn lưu trữ một ngày giờ (thực tế là một thể hiện của lớp 6) trong một biến, sau đó bạn có thể sử dụng hoặc sửa đổi các biến đó.
Cách sử dụng CacbonĐối với hướng dẫn này, tôi sẽ cho rằng bạn đã cài đặt Laravel. Nếu bạn muốn sử dụng trình trợ giúp 7 trong một tệp, hãy nhập 8 hoặc 9 ở đầu tệp của bạn
Nhận ngày hoặc giờ cụ thể với CarbonĐây là một vài ví dụ về cách lấy ngày và giờ cụ thể với Carbon trong Laravel Lấy thời gian hiện tại với CarbonĐiều này nhận được một phiên bản Carbon với thời gian hiện tại
Trình trợ giúp 0 là phương pháp bạn có thể sẽ sử dụng thường xuyên nhất. Ngoài ra còn có một số helper khác, nhưng để sử dụng chúng, bạn phải gọi chúng như một phương thức tĩnh trên mặt tiền 7
Tất cả các phương pháp này đều chấp nhận múi giờ (nếu không, nó sẽ mặc định là UTC) và nó sẽ đặt thời gian là nửa đêm ( 2)Xin lưu ý rằng hai ví dụ dưới đây không giống nhau, vì ví dụ đầu tiên tạo ngày giờ cho ngày mai, nửa đêm ở múi giờ 3. Trong khi ví dụ thứ hai tạo một ngày giờ cho ngày mai, nửa đêm trong múi giờ 4 ( 5) và sau đó chuyển đổi nó thành múi giờ 3. Tôi sẽ giải thích các múi giờ bên dưới
Tạo thủ công ngày/giờ với CarbonNgoài ra còn có một số trình trợ giúp hữu ích cho phép bạn tạo ngày và giờ theo cách thủ công với các giá trị mà bạn tự nhập vào. Xem các ví dụ dưới đây. Xin lưu ý rằng khi bạn vượt qua 7 ở đâu đó, nó sẽ mặc định là giá trị hiện tại của đó. Vì vậy, vượt qua trong 7 cho tháng sẽ lấy tháng hiện tại. Nếu tháng không liên quan trong một tình huống, tôi khuyên bạn nên chuyển vào ngày 7_______9 cho tháng 1. Điều đó sẽ giúp bạn tiết kiệm thời gian gỡ lỗi đau đớn
Quản lý múi giờ với CarbonQuản lý múi giờ trong Laravel và PHP không khó lắm, nhưng đó là điều bạn cần làm quen. Đây là quy tắc cơ bản nhất để quản lý múi giờ trong Laravel Trong cấu hình/ứng dụng. php, bạn có thể đặt giá trị mặc định là 0 cho ứng dụng của mình. Theo mặc định, giá trị này được đặt thành 4, nhưng về lý thuyết, bạn có thể thay đổi nó. Xin lưu ý rằng việc lưu trữ thời gian trong múi giờ khác với UTC+0 không được khuyến khíchVui lòng luôn lưu trữ ngày tháng của bạn vào 4 trong cơ sở dữ liệu và chỉ chuyển đổi chúng khi bạn cần sang múi giờ chính xácMúi giờ nào chúng ta có thể sử dụng trong Carbon và PHP?Bạn có thể hỏi chúng tôi có thể chọn múi giờ nào?
Về lý thuyết, nếu người dùng của bạn ở các múi giờ khác nhau, bạn sẽ lưu trữ tất cả thời gian và ngày tháng trong 4 và chuyển đổi chúng thành múi giờ chính xác khi bạn hiển thị chúngCách lấy múi giờ của người dùng hiện tại trong LaravelĐể đơn giản hóa việc tìm múi giờ hiện tại của người dùng, có một gói có tên là jamesmills/laravel-timezone. Gói này tạo một cột 0 trên bảng 6 cho mô hình Eloquent 7. Mỗi lần người dùng đăng nhập hoặc chỉ lần đầu tiên (tùy bạn muốn), nó sẽ tự động phát hiện múi giờ và cập nhật cột 0 cho phù hợpGói có một số trợ giúp hữu ích, như
Tôi thường sử dụng gói này để chỉ lấy múi giờ của người dùng trong lần đăng nhập đầu tiên và sau đó thêm tùy chọn để thay đổi múi giờ trong cài đặt người dùng Làm cách nào để thêm tùy chọn chọn múi giờ của bạn trong cài đặt? . Đảm bảo cập nhật cột 0 trên mô hình 7 với múi giờ mới và lưu nóChuyển đổi ngày và giờ giữa các múi giờ khác nhauVì vậy, làm cách nào để chuyển đổi ngày và giờ sang múi giờ khác? . Trên mỗi phiên bản Carbon, bạn có thể xâu chuỗi ( 2) trình trợ giúp 3. Trình trợ giúp này chuyển đổi thời gian thành múi giờ mới
Xin lưu ý rằng điều này không thay đổi thời điểm. Nó hoàn toàn thay đổi thời gian thành chính xác Hoặc bạn có thể chèn tham số múi giờ ở mọi nơi bạn thấy tham số 4 0Nhưng bạn cần lưu ý những điều sau đây, điều mà tôi cũng đã nói ở trên. Điều này không giống nhau
Bạn sẽ thấy mục thứ hai là. 'Tôi có một ngày và thời gian nhất định, thực tế là mô tả một thời điểm nhất định. Tôi muốn hiển thị thời điểm đó ở một múi giờ khác, vì vậy tôi làm 5. Khoảnh khắc vẫn giống hệt nhau, nhưng múi giờ thì khácCó lẽ bạn cần làm quen một chút, nhưng ngay khi bạn nắm vững tư duy đúng đắn, làm việc với các múi giờ trong Laravel và PHP sẽ không còn phức tạp nữa Chuyển đổi chuỗi tiếng Anh thành một ngàyCarbon cũng hỗ trợ phân tích chuỗi tiếng Anh thành ngày tháng 2Điều này thực sự kỳ diệu, nhưng điều mà tôi thường không thích. Đối với tôi, điều này giống như bạn chừa một số chỗ để 'diễn giải' trong mã của mình, dựa vào việc Carbon hiểu ý của bạn. Và trong trường hợp không, mã của bạn sẽ bị hỏng Nhưng chuyển đổi chuỗi tiếng Anh thành datetimes không phải là cách sử dụng duy nhất của hàm 6. Bạn cũng có thể sử dụng nó để phân tích bất cứ điều gì. Có dấu thời gian ở một số định dạng ISO mà bạn không biết cách phân tích cú pháp? Kiểm tra xem Carbon có luôn trả về cùng ngày khôngTuy nhiên, bạn có thể kiểm tra xem Carbon có trả về một ngày tuyệt đối hay không bằng cách hỏi Carbon 'nếu bạn nhận được chuỗi này, bạn có luôn trả về cùng một ngày giờ chính xác hay không?' . Nhưng nói 9 sẽ trả về các ngày khác nhau, tùy thuộc vào ngày và tháng hiện tạiĐể kiểm tra xem Carbon có luôn trả về cái gọi là chuỗi ngày/giờ tuyệt đối hay không, bạn có thể sử dụng hàm 0 3Việc kiểm tra điều này cho mỗi lần bạn sử dụng 6 khá rắc rối và theo ý kiến của tôi thì không thực sự đángCộng hoặc trừ ngày và giờ trong CarbonMột trong những tính năng quan trọng nhất của Carbon là khả năng cộng hoặc trừ thời gian và ngày tháng với các thời gian và ngày tháng khác. Điều này thường rất đơn giản và trông như thế này 4Đối với mỗi phương thức, thường có một phương thức 2 và một phương thức 3. Mỗi phương thức thường cũng có một phương thức 4 và 5Thời gian hiện tại không quan trọng và múi giờ cũng vậy Thêm nămĐầu tiên, một ví dụ về một đơn vị (ngày). Bạn có thể cộng hoặc trừ ngày bằng các phương pháp sau 5Không có vấn đề gì nếu thời gian cuối cùng kết thúc trong một tháng mới Thêm hoặc bớt đơn vịKiểm tra các ví dụ về cách cộng và trừ các mốc thời gian Carbon bên dưới từ tài liệu. Lưu ý rằng có rất nhiều đơn vị có sẵn để lựa chọn 6Tính toán sự khác biệt giữa hai lầnTính toán sự khác biệt giữa hai ngày không khó với Carbon. Carbon cung cấp một bộ công cụ lớn gồm 6 phương phápPhương pháp đầu tiên chỉ được gọi là 6 và nó thực sự dễ dàng. Bạn lấy một ngày, chuỗi 8 trên đó và chèn ngày thứ hai làm tham số 7Ngoài ra còn có các phương pháp cung cấp cho bạn sự khác biệt về ngày, giờ hoặc phút. Kiểm tra ví dụ sau từ các tài liệu 8Xin lưu ý rằng các giá trị được trả về ở đây được cắt bớt và làm tròn. Điều này có nghĩa là chênh lệch 2. 6 giờ sẽ về 3 Để có được sự khác biệt tốt hơn, chính xác hơn, hãy sử dụng 9 9Hiển thị sự khác biệt về thời gian cho con ngườiBây giờ đến phần ma thuật thực sự. hiển thị sự khác biệt về thời gian theo cách mà con người có thể đọc được. Quên việc sử dụng tất cả các loại điều kiện phức tạp 0 để hiển thị dấu thời gian, thay vào đó hãy sử dụng CarbonCó khoảng bốn khả năng khi so sánh ngày
Làm cách nào để hiển thị sự khác biệt về thời gian cho con người?Cú pháp hiển thị sự khác biệt về thời gian của Carbon rất dễ dàng. Nó đi như thế này 0Biến 1 đầu tiên luôn cần thiết, nhưng biến thứ hai 2 thì không. Nếu bạn để trống biến này, nó sẽ mặc định là thời điểm hiện tại, bây giờSo sánh một khoảnh khắc trong quá khứ với bây giờ 1Lưu ý rằng 3 là biến 1So sánh một khoảnh khắc trong quá khứ với một khoảnh khắc khác trong quá khứ 2So sánh một khoảnh khắc trong tương lai với hiện tại 3So sánh một thời điểm trong tương lai với một thời điểm khác trong tương lai 4Như một quy luật của. 5 so sánh xem 1 trước hay sau 2Vì vậy, nếu bạn so sánh hai thời điểm trong tương lai hoặc hai thời điểm trong quá khứ, bạn cũng có thể nhận lại câu lệnh 'trước' 5Có một vài phương pháp Carbon bổ sung mà bạn có thể sử dụng, nhưng theo ý kiến của tôi, những phương pháp này là quá đủ cho nhà phát triển trung bình mới bắt đầu với Carbon Phần kết luậnNhư chúng ta đã thấy trong hướng dẫn về Carbon dành cho người mới bắt đầu này, việc thành thạo Carbon hoàn toàn không khó. Nó chỉ đòi hỏi một chút hiểu biết về cách thức hoạt động của nó và thời điểm chính xác là gì. Tôi chắc chắn rằng bạn sẽ hoàn toàn làm chủ được điều này ngay sau khi bạn chơi với Carbon nhiều hơn một chút, vì vậy hãy để tab trình duyệt này mở trong khi viết mã ;-) Nếu có bất kỳ thắc mắc hoặc bổ sung nào, vui lòng để lại bình luận bên dưới. Hoặc đăng ký nhận bản tin của tôi nếu điều này thú vị và nếu bạn muốn nhận được nhiều bài báo như thế này mọi lúc mọi nơi Làm cách nào để chèn ngày giờ hiện tại vào laravel?sử dụng Carbon\Carbon; ở phần đầu của bộ điều khiển . Mã này hoạt động cho Laravel 9. $ đã cập nhật = Carbon. bây giờ();
Làm cách nào để hiển thị ngày giờ hiện tại trong laravel?Lấy ngày hiện tại trong Laravel
. call the "now()" helper function and then call the "toDateTimeString()" method with the format of the date.
Làm cách nào để lưu trữ thời gian trong cơ sở dữ liệu laravel?Làm cách nào để tiết kiệm thời gian trong cơ sở dữ liệu ở định dạng thời gian trong Laravel 5? . Tôi đã sử dụng đồng hồ bấm giờ vì nó lấy dữ liệu ở định dạng 10. 52 giờ sáng Tôi đã sử dụng các phương thức truy cập để tiết kiệm thời gian như sau. hàm công khai setRTimeAttribute($value) { $this->attributes['r_time'] = date('h. i. A', strtotime($value)); Làm cách nào để đặt ngày giờ trong laravel?Múi giờ động/người dùng của Laravel . Đặt thời gian Múi giờ toàn cầu của Laravel là 'múi giờ' => 'UTC' trong ứng dụng/config. . Thêm trường múi giờ vào bảng của người dùng Tạo tùy chọn để đặt múi giờ của người dùng trong khi đăng ký. . Chèn tất cả các bản ghi làm múi giờ mặc định mà chúng tôi đã đặt trong app/config |