PHP hỗ trợ các hàm ngày tháng để xử lý ngày & giờ để triển khai và cung cấp phương thức chuyển đổi ngày tháng mà con người có thể đọc được thành Dấu thời gian Unix. Một trong những phương pháp đó là strtotime[]
PHP strtotime
Hàm strtotime[] trong PHP dịch mô tả ngày giờ bằng văn bản tiếng Anh sang dấu thời gian UNIX. Hàm strtotime[] lấy một chuỗi tiếng Anh làm đối số đại diện cho thông tin ngày giờ
cú pháp
strtotime[time, now];
Trong khi
- thời gian. Nó chỉ định một chuỗi ngày/giờ
- Hiện nay. Nó là một tham số tùy chọn. Tham số now chỉ định dấu thời gian được sử dụng để tính toán giá trị được trả về
ví dụ
echo strtotime["now"], "\n"; echo strtotime["11 March 2022"], "\n"; echo strtotime["+1 day"], "\n"; echo strtotime["+2 week"], "\n"; echo strtotime["next Friday"], "\n"; echo strtotime["last Saturday"], "\n";
đầu ra
1646974188 1646956800 1647060588 1648183788 1647561600 1646438400
Nhận ngày hiện tại trong PHP
echo date["Y-m-d", strtotime["now"]];
đầu ra
2022-03-11
Ngày trong tương lai trong PHP
echo date["Y-m-d", strtotime["2022-03-11 +2 month"]];
đầu ra
2022-05-11
Ngày quá khứ trong PHP
echo date["Y-m-d", strtotime["2022-03-11 -2 month"]];
đầu ra
2022-01-11
strtotime để chuyển đổi văn bản tiếng Anh thành một ngày
$textDate = "11th March 2022"; echo strtotime[$textDate], "\n"; echo date["Y-m-d", strtotime[$textDate]]."\n";
đầu ra
1646956800 2022-03-11
Hàm strtotime[] trong PHP cho phép bạn chuyển đổi các chuỗi ngày giờ văn bản tiếng Anh thành dấu thời gian UNIX. Nó rất hữu ích để chuyển đổi chuỗi ngày giờ của cơ sở dữ liệu thành dấu thời gian UNIX và cũng tạo ngày trong tương lai hoặc quá khứ dựa trên thời gian hiện tại hoặc liên quan đến ngày và giờ trong tương lai hoặc quá khứ. Bài đăng này xem xét một số ví dụ về việc này
Hàm PHP strtotime[] có cách sử dụng như sau
int strtotime [ string $time [, int $now ] ]
Điều này có nghĩa là bạn chuyển vào một giá trị chuỗi cho thời gian và tùy chọn một giá trị cho thời điểm hiện tại, đó là dấu thời gian UNIX. Giá trị được trả về là một số nguyên là dấu thời gian UNIX
Một ví dụ về cách sử dụng này như sau, trong đó ngày được chuyển đến strtotime[] có thể là ngày từ truy vấn cơ sở dữ liệu hoặc tương tự
________số 8_______Điều này sẽ trả về biến $ts giá trị 1198148400, là dấu thời gian UNIX cho ngày 21 tháng 12 năm 2007. Điều này có thể được xác nhận bằng hàm date[] như vậy
echo date['Y-m-d', 1198148400]; // echos 2007-12-21
strtotime[] có thể phân tích nhiều chuỗi khác nhau và chuyển đổi chúng thành dấu thời gian thích hợp, sử dụng ngày thực tế và cả các chuỗi như "tuần tới", "thứ ba tới", "thứ năm trước", "2 tuần trước", v.v. . Dưới đây là một số ví dụ
$ts = strtotime['21 december 2007']; echo $ts, '
'; echo date['Y-m-d', $ts], '
';
Điều này sẽ hiển thị như sau
1198148400 2007-12-21
Nếu hôm nay là ngày 21 tháng 12 thì như sau
$ts = strtotime['next week']; echo $ts, '
'; echo date['Y-m-d', $ts], '
'; $ts = strtotime['next tuesday']; echo $ts, '
'; echo date['Y-m-d', $ts], '
'; $ts = strtotime['last thursday']; echo $ts, '
'; echo date['Y-m-d', $ts], '
'; $ts = strtotime['2 weeks ago']; echo $ts, '
'; echo date['Y-m-d', $ts], '
'; $ts = strtotime['+ 1 month']; echo $ts, '
'; echo date['Y-m-d', $ts], '
';
sẽ hiển thị như sau
1199006542 2007-12-30 1198494000 2007-12-25 1198062000 2007-12-20 1197192142 2007-12-09 1201080142 2008-01-23
Sử dụng strtotime để bù đắp từ một ngày khác
Nếu bạn muốn sử dụng hàm strtotime của PHP để cộng hoặc trừ một số ngày, tuần, tháng hoặc năm từ một ngày khác với thời gian hiện tại, bạn có thể thực hiện bằng cách chuyển tham số tùy chọn thứ hai cho hàm strtotime[], hoặc
Ví dụ này cho thấy việc truyền tham số thứ hai. Làm theo cách này yêu cầu ngày cần bù trừ đã là dấu thời gian UNIX. Trong ví dụ này, dấu thời gian được thông qua là ngày 25 tháng 12 năm 2007 [Ngày Giáng sinh]
$ts = strtotime['tomorrow', 1198494000]; echo $ts, '
'; echo date['Y-m-d', $ts];
Kết quả sẽ là
1198580400 2007-12-26
Như bạn có thể thấy, 'ngày mai' đã được phân tích thành ngày mai bắt đầu từ dấu thời gian 1198494000, tức là ngày 25 tháng 12 năm 2007, dẫn đến dấu thời gian được trả về là ngày 26 tháng 12 năm 2007
Một cách khác để cộng hoặc trừ thời gian từ chuỗi thời gian hiện có là thêm nó vào chuỗi ngày giờ như vậy, nơi chúng tôi đang thêm 90 ngày vào một giá trị ngày, theo định dạng của trường ngày MySQL
$ts = strtotime['2007-10-12 +90 days']; echo $ts, '
'; echo date['Y-m-d', $ts], '
';
Điều này sẽ xuất ra
$ts = strtotime['2007-12-21'];0
Như bạn có thể thấy, hàm strtotime[] cực kỳ hữu ích để phân tích các biểu diễn tiếng Anh [và cơ sở dữ liệu] của chuỗi ngày và giờ và biến chúng thành dấu thời gian UNIX. Nó cũng hữu ích để thêm các giá trị cộng và trừ vào các dấu thời gian đó để dễ dàng tạo ngày và giờ trong tương lai và quá khứ