Asked Sep 25th, 3:22 PM 109 0 2
  • 109 0 2
0

Cách lấy ngày đầu tiên và cuối cùng của tháng này và tháng trước trong PHP

Share
  • 109 0 2

Xin chào, Mình cần cách tự động lấy ngày đầu tiên và ngày cuối cùng của tháng này (và tháng trước). Mình sẽ dùng chúng làm biến để thực hiện truy vấn MySQL.

Đại khái truy vấn MySQL của mình như thế này.

SELECT content FROM posts WHERE date_created BETWEEN $ngaydauthangnay and $ngaycuoithangnay

Trong đó:

  • content: 1 column chứa nội dung
  • posts: tên của Table
  • date_created: 1 column có format là ngày tháng.

Bây giờ mình cần định nghĩa $ngaydauthangnay và $ngaycuoithangnay để nó tự động lấy ngày tháng của tháng hiện tại. Tương tự, mình cần làm như thế với tháng trước.

2 ANSWERS


Answered Sep 26th, 2:42 PM
Accepted
+3

@dokkan7 bạn có thể dùng thư viện carbon như @minhhieuuet đề cập hoặc dùng php thuần luôn, nó support cả rồi

echo date('Y-m-01') ; // ngày đầu tháng
echo date("Y-m-t"); // ngày cuối tháng

$month_ini = new DateTime("first day of last month"); ngày đầu của tháng trước
echo $month_ini->format('Y-m-d');

$month_end = new DateTime("last day of last month"); ngày cuối của tháng trước 
echo $month_end->format('Y-m-d');

Hoặc bạn có thể dùng hàm trong sql để lấy cái đó luôn, đỡ phải dùng php. (cho nhanh và tiết kiệm bộ nhớ đc xíu 😄)

* LAST_DAY(curdate() - interval 1 month) + interval 1 day // ngày đầu tháng
* select last_day(curdate()) // ngày cuối tháng

* select last_day(curdate() - interval 2 month) + interval 1 day//  ngày đầu của tháng trước
* select last_day(curdate() - interval 1 month) // ngày cuối của tháng trước

Hy vọng no useful với bạn.

Share
morikun @thanhnguyen
Sep 26th, 2:52 PM

xuất sắc!

0
| Reply
Share
Ngân Kim @ngankim
Sep 26th, 2:55 PM

@dokkan7 mấy cái này dùng php là đủ, ko cần dùng carbon

0
| Reply
Share
Dr Dokkan @dokkan7
Sep 27th, 5:15 AM

Cảm ơn mọi người.

0
| Reply
Share
Answered Sep 25th, 4:35 PM
+1

Bạn có thể dùng extension Carbon để xử lý ngày tháng dễ dàng hơn https://carbon.nesbot.com/ muốn lấy ngày đầu tiên của tháng trước thì có thể dùng

$startDayPreviousMonth = Carbon::now()->modify('-1 months')-> startOfMonth()

$endDayPreviousMonthDay = Carbon::now()->modify('-1 months')-> endOfMonth()

Share
Dr Dokkan @dokkan7
Sep 27th, 5:15 AM

Cảm ơn bạn.

0
| Reply
Share