Làm cách nào để có được ngày trong tuần trước trong PHP?

Chúng tôi đã trừ ba ngày từ ngày đã cho bằng cách sử dụng hàm DATE_SUB[]. Thay cho NGÀY, chúng ta có thể sử dụng Tháng, năm, giờ, phút, giây, v.v., đây là danh sách

đơn vị Giá trị Expr được mong đợi.

SELECT DATE_SUB[ '2016-02-23', INTERVAL 2 YEAR ]; // 2014-02-23 
SELECT DATE_SUB[ CURDATE[], INTERVAL 2 YEAR ]; // 2018-02-23
Truy vấn thứ hai phụ thuộc vào ngày hôm nay, vì vậy kết quả của bạn sẽ khác
Đôi khi chúng tôi phải thu thập dữ liệu trong 7 hoặc 15 ngày hoặc X ngày [hoặc tháng, năm hoặc tuần] từ bảng MySQL
  • Video hướng dẫn truy vấn ngày bằng CURDATE, BETWEEN , YEAR, MONTH, DAYOFWEEK[]

Ví dụ: hãy để chúng tôi tìm ra ai là thành viên mới tham gia diễn đàn của chúng tôi vào tuần trước. Một cửa hàng có thể muốn biết các sản phẩm mới được thêm vào trong một tháng qua. Những cuốn sách đã đến trong một năm qua là gì. Ở đây, bất kể giá trị ngày là gì, chúng tôi muốn các bản ghi của X ngày trước kể từ hôm nay hoặc chúng tôi có thể nói rằng các bản ghi giữa hôm nay và X ngày trước [ tháng , năm hoặc tuần] là bắt buộc

Chúng ta sẽ sử dụng hàm MySQL CURDATE[] để lấy ngày hôm nay

Để có được sự khác biệt trong ngày hôm nay và ngày hoặc tháng trước đó, chúng ta phải sử dụng hàm MySQL DATE_SUB

DATE_SUB là một hàm MySQL lấy biểu thức ngày, khoảng thời gian và hằng số để trả về giá trị ngày để tính toán thêm

Hàm strtotime trong PHP cực kỳ mạnh mẽ nhưng lại được sử dụng rất ít - chủ yếu là do một số khía cạnh có thể hơi khó hiểu và mọi người tự tin hơn 'làm mọi việc theo cách khó'. Hàm strtotime không chỉ chuyển đổi chuỗi ngày thành giá trị dấu thời gian mà còn có 'ngôn ngữ' riêng để cho phép bạn chỉ định bất kỳ ngày hoặc giờ nào bạn muốn

Tính ngày cho những ngày trong quá khứ và tương lai

Các phép tính đơn giản và phổ biến nhất dựa trên giây, phút, giờ và ngày. Tháng và năm cũng là đầu vào hợp lệ nhưng không phải lúc nào cũng hữu ích trong tính toán vì chúng không có độ dài bằng nhau do cách thức hoạt động của lịch của chúng tôi

Hiển thị bên dưới là kết quả của các chuỗi khác nhau được chuyển đến strtotime và được chuyển đổi thành chuỗi ngày

Ví dụ

echo date['l jS F [Y-m-d]', strtotime['-3 days']];3 ngày trướcThứ hai ngày 30 tháng 1 [2023-01-30]-3 ngàyThứ hai ngày 30 tháng 1 [2023-01-30]-2 ngàyThứ ba ngày 31 tháng 1 [2023-01-31]hôm quaThứ tư ngày 1 tháng 2 [2023-02-01]nayThứ năm ngày 2 tháng 2 [

Như mọi khi, thường có nhiều cách khác nhau để đạt được cùng một kết quả. Trong danh sách trên, bạn có thể thấy rằng '3 ngày trước' tương đương với '-3 ngày'. Ngoài ra, 'hôm qua' giống như '-1 ngày' hoặc '1 ngày trước'. Có thể bỏ chữ 's' ở cuối 'ngày', 'năm' hoặc các phép đo khác nếu bạn muốn

Các giá trị đầu vào 'bây giờ' và 'hôm nay' trong danh sách trên là không cần thiết vì nếu chúng ta bỏ qua tham số thứ hai của hàm ngày thì nó sẽ mặc định là thời điểm hiện tại

Làm việc với các ngày trong tuần

Đôi khi chúng tôi làm việc với các ngày trong tuần và cần biết lần xuất hiện cuối cùng/tiếp theo của, ví dụ: Thứ Bảy

-2 tuần Thứ bảyThứ bảy ngày 21 tháng 1 [21-01]Thứ bảy tuần trướcThứ bảy ngày 28 tháng 1 [28-01-2023]Thứ bảyThứ bảy ngày 4 tháng 2 [2023-02-04]Thứ bảy tuần nàyThứ bảy ngày 4 tháng 2 [2023-02-04]Thứ bảy đầu tiênThứ bảy ngày 4 tháng 2 [

Trong danh sách trên, chúng ta có thể thấy rằng 'Saturday', 'this Saturday' và 'first Saturday' đều tương đương nhau. Từ khóa 'này' và 'đầu tiên' chỉ được sử dụng để cải thiện khả năng đọc

Bây giờ nó trở nên hơi phức tạp để giải thích. Sau đây xuất hiện trên trang web PHP

Trong PHP 5 lên đến 5. 0. 2, "bây giờ" và các thời gian tương đối khác được tính sai từ nửa đêm hôm nay. Nó khác với các phiên bản khác ở chỗ nó được tính toán chính xác từ thời điểm hiện tại

Ngoài ra, họ đã giới thiệu 'thứ hai' như trong 'thứ bảy thứ hai' và dường như đã thay đổi ý nghĩa của 'tiếp theo' thành nghĩa giống như 'thứ nhất'. Cuối cùng, giá trị trả về khi thất bại giờ là FALSE thay vì -1. Thay đổi cuối cùng này có nhiều khả năng gây ra sự cố nhất trong các ứng dụng cũ

Bảng dưới đây cho thấy đầu ra đã thay đổi như thế nào

Các phiên bản cũ hơn của PHP. PHP5. 0. 2 và cao hơn
  • thứ bảy tuần trước
  • thứ bảy này hoặc thứ bảy đầu tiên
  • thứ bảy tới
  • thứ bảy thứ ba
  • thứ bảy thứ tư
  • thứ bảy tuần trước
  • thứ bảy này hoặc thứ bảy đầu tiên hoặc thứ bảy tới
  • thứ bảy thứ hai
  • thứ bảy thứ ba
  • thứ bảy thứ tư

Sử dụng offset để có được ngày phù hợp

Một vấn đề khác là khi bạn muốn tìm sự xuất hiện trước đó hoặc tiếp theo của một ngày nào đó trong tuần. Ví dụ: hôm nay là thứ Năm, chúng ta có thể chạy như sau

thứ năm tuần trướcThứ năm 26 tháng 1 [2023-01-26]Thứ nămThứ năm 2 tháng 2 [2023-02-02]Thứ năm tuần nàyThứ năm 2 tháng 2 [2023-02-02]Thứ năm đầu tiênThứ năm 9 tháng 2 [2023-02-09]Thứ năm tuần sauThứ năm 9 tháng 2 [2023- . PHP5. 0. 2 và cao hơn
  • Thứ Năm tuần trước
  • thứ năm này hoặc thứ năm đầu tiên
  • thứ năm tới
  • thứ năm thứ ba
  • thứ năm Thứ tư
  • Thứ Năm tuần trước
  • thứ năm này
  • thứ năm đầu tiên hoặc thứ năm tới
  • thứ năm thứ hai
  • thứ năm thứ ba

Bạn có thể thấy trong bảng ở trên, trong khi 'thứ Năm tới' trả về kết quả tương tự, thì 'thứ nhất', 'thứ hai', 'thứ ba',. tất cả các công cụ sửa đổi đã thay đổi ý nghĩa - rất may là ở trạng thái hợp lý hơn

Bạn cũng có thể nhận thấy rằng điều này chỉ xảy ra khi bạn đang tính toán từ ngày hiện tại chứ không phải trong các ví dụ trước [trừ khi hôm nay là thứ Bảy]. Bất cứ khi nào bạn tính toán dựa trên số ngày, bạn nên kiểm tra càng nhiều khả năng càng tốt. Hôm nay nó có hoạt động không?

Đôi khi bạn muốn tìm lần xuất hiện cuối cùng của một ngày trước ngày hôm nay hoặc trước ngày hôm qua hoặc trước 2 ngày trước. Các ví dụ sau đây cho thấy cú pháp bạn có thể sử dụng cho việc này

-3 ngày Thứ bảy tuần trướcThứ tư 25 tháng 1 [25-01-2023]-2 ngày Thứ bảy tuần trướcThứ năm 26 tháng 1 [26-01-2023]hôm qua Thứ bảy tuần trướcThứ sáu 27 tháng 1 [27-01-2023]Ngày mai Thứ bảyChủ nhật 5 tháng 2 [2023-02-05]

Bây giờ bạn đã hiểu hoạt động bên trong của strtotime, bạn sẽ có thể giảm đáng kể số lượng mã cần thiết để tính ngày trong quá khứ và tương lai

Kiểm tra xem một ngày trong Quá khứ hay Tương lai

Hàm strtotime trả về một giá trị số nguyên nên việc xem một ngày là quá khứ hay tương lai là một vấn đề đơn giản

if[strtotime[dateString] > time[]] { # date is in the future } if[strtotime[dateString] < time[]] { # date is in the past } if[strtotime[dateString] == time[]] { # date is right now }

Ghi chú. time[] tương đương với date['U'] và trả về dấu thời gian hiện tại đến giây gần nhất

Bạn có thể muốn thay time[] bằng strtotime['0. 00'] nếu bạn muốn so sánh chuỗi ngày với ngày hiện tại thay vì ngày và giờ hiện tại

Làm cách nào để có được ngày 7 ngày qua trong PHP?

get7DaysDates[7, 'd-m-Y']; Bạn có thể sử dụng dòng trên để lấy mảng ngày tháng. Bạn có thể thay đổi định dạng ngày bằng cách thay đổi dấu tách ngày. Hy vọng bạn thấy hữu ích và hữu ích của chúng tôi.

Làm thế nào để có được một tuần trước trong PHP?

Bạn chỉ cần sử dụng hàm strtotime[] và chuyển "-7 ngày" hoặc "-1 tuần" để quay lại bảy ngày . $t = strtotime [ "-7 ngày" ];

Làm cách nào để có được ngày thứ Sáu tuần trước trong PHP?

Chúng ta sẽ sử dụng hàm strtotime[] để lấy tất cả các ngày.

Chủ Đề