Làm cách nào để có được thời gian ước tính trong PHP?

Câu hỏi – Cách lấy ngày giờ hiện tại bằng PHP? . i. định dạng s?

Bạn có thể sử dụng hàm date() để lấy Ngày và Giờ hiện tại trong bất kỳ phiên bản PHP nào. Một lớp DateTime PHP cũng có sẵn trong PHP > 5. 2 để lấy Ngày và Giờ. Ngoài ra, hãy tìm ví dụ để lấy ngày và giờ trong JavaScript

Ngày giờ PHP

In ngày và giờ hiện tại bằng hàm date(). Nó sẽ sử dụng múi giờ mặc định được cấu hình trong php. ban đầu

1

2

3

echo ngày('Y-m-d H. i. s');

?>

In ngày giờ hiện tại bằng lớp DateTime(). Nó cũng sẽ sử dụng múi giờ mặc định

1

2

3

4

$datetime = new DateTime();

echo $datetime - >định dạng('Y-m-d H:i:s');

?>

Ngày và giờ PHP với múi giờ

Bạn cũng có thể xác định múi giờ cụ thể cho Ứng dụng của mình. Bây giờ PHP sẽ không sử dụng múi giờ do hệ thống xác định

1

2

3

4

5

6

date_default_timezone_set('UTC');

 

$datetime = new DateTime();

echo $datetime - >định dạng('Y-m-d H:i:s');

?>

Lưu trữ ngày và giờ ở định dạng UTC là cách thực hành tốt nhất. UTC được coi là Giờ phối hợp quốc tế. Nó còn được gọi là “thời gian Z” hoặc “thời gian Zulu”

Chuyển đổi Ngày Giờ Múi giờ

Ví dụ: bạn đã lưu trữ ngày (2018-01-11 01. 17. 23) theo múi giờ UTC trong cơ sở dữ liệu của bạn. Bây giờ hãy chuyển đổi DateTime này thành múi giờ EST

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?

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ư

  1. Tạo ngày giờ

  2. Chuyển đổi ngày giờ giữa các múi giờ khác nhau

  3. Cộng và trừ thời gian

  4. Tính toán sự khác biệt giữa các lần

  5. Chuyển đổi datetimes thành thứ gì đó mà con người có thể đọc được

Đầu tiên, chính xác một datetime là gì? . Nó bao gồm ba phần

  1. Ngày tháng

  2. Thời gian

  3. Múi giờ (nếu không được đặt, nó sử dụng mặc định; chủ yếu là UTC (+0)

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

$now = now();

$today = today();

6) trong một biến, sau đó bạn có thể sử dụng hoặc sửa đổi chúng.

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

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

$now = now();

$today = today();

7 trong một tệp, hãy nhập

$now = now();

$today = today();

8 hoặc

$now = now();

$today = today();

9 ở đầu tệp của bạn

 

// namespace App\....

 

use Illuminate\Support\Carbon;

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

$now = now();

$today = today();

Trình trợ giúp

$now = Carbon::now();

$today = Carbon::today();

$tomorrow = Carbon::tomorrow('Europe/London');

$yesterday = Carbon::yesterday();

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

$now = now();

$today = today();

7

$now = Carbon::now();

$today = Carbon::today();

$tomorrow = Carbon::tomorrow('Europe/London');

$yesterday = Carbon::yesterday();

Tất cả các phương thức 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 (

$now = Carbon::now();

$today = Carbon::today();

$tomorrow = Carbon::tomorrow('Europe/London');

$yesterday = Carbon::yesterday();

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 trong múi giờ

$now = Carbon::now();

$today = Carbon::today();

$tomorrow = Carbon::tomorrow('Europe/London');

$yesterday = Carbon::yesterday();

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ờ

$now = Carbon::now();

$today = Carbon::today();

$tomorrow = Carbon::tomorrow('Europe/London');

$yesterday = Carbon::yesterday();

4 (

$now = Carbon::now();

$today = Carbon::today();

$tomorrow = Carbon::tomorrow('Europe/London');

$yesterday = Carbon::yesterday();

5) và sau đó chuyển đổi nó thành múi giờ

$now = Carbon::now();

$today = Carbon::today();

$tomorrow = Carbon::tomorrow('Europe/London');

$yesterday = Carbon::yesterday();

3. Tôi sẽ giải thích các múi giờ bên dưới

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

5

Tạo thủ công ngày/giờ với Carbon

Ngoà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

$now = Carbon::now();

$today = Carbon::today();

$tomorrow = Carbon::tomorrow('Europe/London');

$yesterday = Carbon::yesterday();

7 ở đâu đó, nó sẽ mặc định là giá trị hiện tại của đó. Vì vậy, chuyển vào

$now = Carbon::now();

$today = Carbon::today();

$tomorrow = Carbon::tomorrow('Europe/London');

$yesterday = Carbon::yesterday();

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 sang

$now = Carbon::now();

$today = Carbon::today();

$tomorrow = Carbon::tomorrow('Europe/London');

$yesterday = Carbon::yesterday();

9 cho tháng Giêng. Điều đó sẽ giúp bạn tiết kiệm thời gian gỡ lỗi đau đớn

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

9

Quản lý múi giờ với Carbon

Quả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à

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

50 cho ứng dụng của mình. Theo mặc định, giá trị này được đặt thành

$now = Carbon::now();

$today = Carbon::today();

$tomorrow = Carbon::tomorrow('Europe/London');

$yesterday = Carbon::yesterday();

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ích

Vui lòng luôn lưu trữ ngày của bạn trong

$now = Carbon::now();

$today = Carbon::today();

$tomorrow = Carbon::tomorrow('Europe/London');

$yesterday = Carbon::yesterday();

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ác

Mú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?

$now = now();

$today = today();

4

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

$now = Carbon::now();

$today = Carbon::today();

$tomorrow = Carbon::tomorrow('Europe/London');

$yesterday = Carbon::yesterday();

4 và chuyển đổi chúng thành múi giờ chính xác khi bạn hiển thị chúng

Cá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

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

50 trên bảng

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

56 cho mô hình Eloquent

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

57. 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

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

50 cho phù hợp

Gói có một số trợ giúp hữu ích, như

$now = now();

$today = today();

0

$now = now();

$today = today();

1

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

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

50 trên mô hình

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

57 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 nhau

Vì 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 (

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

92) trình trợ giúp

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

93. Trình trợ giúp này chuyển đổi thời gian thành múi giờ mới

$now = now();

$today = today();

7

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ố

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

94

 

// namespace App\....

 

use Illuminate\Support\Carbon;

0

Như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

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

5

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

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

95. Khoảnh khắc vẫn giống hệt nhau, nhưng múi giờ thì khác

Có 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ày

Carbon cũng hỗ trợ phân tích chuỗi tiếng Anh thành ngày tháng

 

// namespace App\....

 

use Illuminate\Support\Carbon;

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 việc chuyển đổi chuỗi tiếng Anh thành thời gian biểu không phải là cách sử dụng duy nhất của hàm

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

96. 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ông

Tuy 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

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

99 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

$now = now();

$today = today();

40

 

// namespace App\....

 

use Illuminate\Support\Carbon;

3

Việc kiểm tra điều này cho mỗi lần bạn sử dụng

$now = now();

 

$trialExpires = $now->addDays(30);

// Or

$trialExpires = now()->addDays(30);

96 khá rắc rối và theo ý kiến ​​của tôi thì không thực sự đáng

Cộng hoặc trừ ngày và giờ trong Carbon

Mộ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

 

// namespace App\....

 

use Illuminate\Support\Carbon;

4

Đối với mỗi phương thức, thường có một phương thức

$now = now();

$today = today();

42 và một phương thức

$now = now();

$today = today();

43. Mỗi phương thức thường cũng có một phương thức

$now = now();

$today = today();

44 và

$now = now();

$today = today();

45

Thờ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

 

// namespace App\....

 

use Illuminate\Support\Carbon;

5

Khô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

 

// namespace App\....

 

use Illuminate\Support\Carbon;

6

Tính toán sự khác biệt giữa hai lần

Tí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 246 phương pháp

Phương pháp đầu tiên chỉ được gọi là

$now = now();

$today = today();

46 và nó thực sự dễ dàng. Bạn lấy một ngày, xâu chuỗi

$now = now();

$today = today();

48 vào đó và chèn ngày thứ hai làm tham số

 

// namespace App\....

 

use Illuminate\Support\Carbon;

7

Ngoà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

 

// namespace App\....

 

use Illuminate\Support\Carbon;

8

Xin 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

$now = now();

$today = today();

49

 

// namespace App\....

 

use Illuminate\Support\Carbon;

9

Hiển thị sự khác biệt về thời gian cho con người

Bây giờ đến phần kỳ diệu 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 của

$now = now();

$today = today();

00 để hiển thị dấu thời gian, thay vào đó hãy sử dụng Carbon

Có khoảng bốn khả năng khi so sánh ngày

  1. So sánh một khoảnh khắc trong quá khứ với bây giờ

    • 2 giờ trước

    • 4 tuần trước

  2. So sánh một khoảnh khắc trong quá khứ với một khoảnh khắc khác trong quá khứ

    • 2 giờ trước

    • 4 tuần trước

  3. So sánh một khoảnh khắc trong tương lai với hiện tại

    • 2 giờ kể từ bây giờ

    • 4 tuần kể từ bây giờ

  4. So 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

    • 2 giờ sau

    • 4 tuần sau

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

$now = now();

$today = today();

0

Biến

$now = now();

$today = today();

01 đầu tiên luôn cần thiết, nhưng biến thứ hai

$now = now();

$today = today();

02 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ờ

$now = now();

$today = today();

1

Lưu ý rằng

$now = now();

$today = today();

03 là biến

$now = now();

$today = today();

01

So sánh một khoảnh khắc trong quá khứ với một khoảnh khắc khác trong quá khứ

$now = now();

$today = today();

2

So sánh một khoảnh khắc trong tương lai với hiện tại

$now = now();

$today = today();

3

So 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

$now = now();

$today = today();

4

Như một quy luật của.

$now = now();

$today = today();

05 so sánh xem

$now = now();

$today = today();

01 trước hay sau

$now = now();

$today = today();

02

Vì 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'

$now = now();

$today = today();

5

Có 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ận

Như 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 để đặt múi giờ ước tính trong PHP?

php echo date_default_timezone_get(); . i. s. u'); . ',$thời gian hiện tại); . $ phút. $secs\n"; date_default_timezone_set('US/Eastern'); echo date_default_timezone_get(); $currenttime = date('h. i. s. u'); . ',$thời gian hiện tại

PHP sử dụng múi giờ nào?

Múi giờ mặc định cho PHP là UTC bất kể múi giờ của máy chủ của bạn là gì. Đây là múi giờ được sử dụng bởi tất cả các hàm ngày/giờ PHP trong tập lệnh của bạn.

Làm cách nào để đặt múi giờ cho Ấn Độ trong PHP?

php //đặt múi giờ $tz = 'Indian/Mahe'; . ". $timeZone);

Làm cách nào để đặt múi giờ ở Nigeria trong PHP?

php // Dành riêng cho Nigeria date_default_timezone_set('Africa/Lagos'); . m. s'); //đối với Nairobi date_default_timezone_set('Africa/Nairobi'); . m. s');