Hướng dẫn how to get one month before date in php? - làm thế nào để có được một tháng trước ngày trong php?

Vì vậy, đây là tình huống. Trong bảng DB của tôi, tôi có một cột gọi là Expire_date, trong đó tôi đặt một ngày nhất định cho mỗi hàng. Vì vậy, ví dụ, ngày hết hạn là 28-04-2012

Tôi cần một mã PHP sẽ gửi cho một người dùng nhất định thông báo qua email rằng điều nhất định sẽ hết hạn vào ngày đó là 1 tháng kể từ khi hết hạn. Vì vậy, nếu hôm nay là 28-03-2012, điều đó có nghĩa là chỉ có 1 mặt trăng trước khi điều đó hết hạn. Tôi đã không tạo bất kỳ mã nào cho việc này vì tôi không biết cách giải quyết -1 tháng.

Neil Knight

46.6K23 Huy hiệu vàng127 Huy hiệu bạc187 Huy hiệu đồng23 gold badges127 silver badges187 bronze badges

hỏi ngày 28 tháng 3 năm 2012 lúc 15:56Mar 28, 2012 at 15:56

Đầu tiên nhận ngày trong một tháng với PHP:

$myDate = date["Y-m-d", strtotime[ date[ "Y-m-d", strtotime[ date["Y-m-d"] ] ] . "+1 month" ] ];

Sau đó, bạn có thể chọn một lựa chọn:

$result = mysql_query[ 'SELECT * FROM myTable WHERE expire_date BETWEEN NOW AND "' . $myDate . '"' ];

Và ở đó bạn có một mảng với tất cả các mặt hàng hết hạn trong vòng chưa đầy một tháng. Nếu bạn muốn chính xác những cái hết hạn trong 1 tháng:

$result = mysql_query[ 'SELECT * FROM myTable WHERE expire_date = "' . $myDate . '"' ];

Tôi hi vọng cái này giúp được

Đã trả lời ngày 28 tháng 3 năm 2012 lúc 16:13Mar 28, 2012 at 16:13

TalestalesTales

1.7492 huy hiệu vàng30 Huy hiệu bạc47 Huy hiệu đồng2 gold badges30 silver badges47 bronze badges

2

Đơn giản ;

    $WeekAgo = strtotime["-1 week"]; //A week before today
    $MonthAgo = strtotime["-1 month"]; //A month before today

Đã trả lời ngày 31 tháng 8 năm 2015 lúc 23:41Aug 31, 2015 at 23:41

SudarpsudarpSudarP

87610 Huy hiệu bạc12 Huy hiệu đồng10 silver badges12 bronze badges

Có lẽ bạn nên làm điều đó trong SQL chứ không phải PHP không?

Nếu bạn muốn làm trong PHP, đây là một cách sạch hơn @Expert muốn

$date = new DateTime[];//now 
$interval = new DateInterval['P1M'];// P[eriod] 1 M[onth]
$date->sub[$interval];
echo $date->format['Y-m-d'];     

Đã trả lời ngày 28 tháng 3 năm 2012 lúc 16:09Mar 28, 2012 at 16:09

Haltabushhaltabushhaltabush

4.4782 Huy hiệu vàng23 Huy hiệu bạc41 Huy hiệu đồng2 gold badges23 silver badges41 bronze badges

Như @Mikhail đã chỉ ra, bạn nên sử dụng

$result = mysql_query[ 'SELECT * FROM myTable WHERE expire_date BETWEEN NOW AND "' . $myDate . '"' ];
3 để bạn chỉ lấy lại bản ghi một lần. Bạn không muốn spam người dùng của mình hàng ngày trong cả tháng chạy đến hết hạn_date -

SELECT *
FROM tbl
WHERE expire_date = CURRENT_DATE + INTERVAL 1 MONTH

Nếu expire_date của bạn chứa một datetime trái ngược với giá trị ngày, bạn nên sử dụng một cái gì đó như -

SELECT *
FROM tbl
WHERE expire_date BETWEEN [CURRENT_DATE + INTERVAL 1 MONTH] AND [CURRENT_DATE + INTERVAL 1 MONTH + INTERVAL 1 DAY - INTERVAL 1 SECOND]

Đã trả lời ngày 28 tháng 3 năm 2012 lúc 16:20Mar 28, 2012 at 16:20

nnicholsncholsnnichols

7,4931 Huy hiệu vàng19 Huy hiệu bạc27 Huy hiệu đồng1 gold badge19 silver badges27 bronze badges

SELECT user, email FROM tbl WHERE expire_date = CURRENT_TIMESTAMP - INTERVAL 1 MONTH

Lưu ý rằng tôi sử dụng

$result = mysql_query[ 'SELECT * FROM myTable WHERE expire_date BETWEEN NOW AND "' . $myDate . '"' ];
3 và không ít hơn, bởi vì nếu bạn chỉ so sánh rằng nó chưa đầy một tháng, thì bạn sẽ gửi email cho người dùng mỗi ngày trong tháng trước.

Đã trả lời ngày 28 tháng 3 năm 2012 lúc 16:03Mar 28, 2012 at 16:03

MikhailmikhailMikhail

8.4917 Huy hiệu vàng51 Huy hiệu bạc81 Huy hiệu đồng7 gold badges51 silver badges81 bronze badges

1

Bạn có thể sử dụng chức năng

$result = mysql_query[ 'SELECT * FROM myTable WHERE expire_date BETWEEN NOW AND "' . $myDate . '"' ];
5 trong truy vấn MySQL của bạn.

> SELECT ADDDATE[  '28-03-2012', INTERVAL 1 MONTH ]
28-04-2012

Thêm về nó ở đây.

Nếu bạn có một chỉ mục trên cột

$result = mysql_query[ 'SELECT * FROM myTable WHERE expire_date BETWEEN NOW AND "' . $myDate . '"' ];
6 của mình, điều này có thể được thực hiện khá nhanh nếu bạn truy vấn các mục với câu lệnh
$result = mysql_query[ 'SELECT * FROM myTable WHERE expire_date BETWEEN NOW AND "' . $myDate . '"' ];
7 như:

WHERE expire_date = ADDDATE[CURDATE[], INTERVAL 1 MONTH]

[Thêm về

$result = mysql_query[ 'SELECT * FROM myTable WHERE expire_date BETWEEN NOW AND "' . $myDate . '"' ];
8 ngay tại đây]

Nếu bạn làm điều đó mỗi ngày chính xác một lần, nó sẽ chỉ chọn tất cả mọi người tại Max một lần và không gửi cho họ email hai lần vì nó chỉ chọn những người đó chính xác 1 tháng so với ngày hết hạn của họ.every day exactly once it will only select all people at max once and not send them the email twice since it only selects those that are exactly 1 month away from their expire date.

Tất nhiên, điều này hoạt động mà không có bất kỳ sự quan tâm bổ sung nào về biểu diễn cụ thể của ngày nếu bạn sử dụng trường ngày trong bảng MySQL của bạn.DATE fieldtype in your MySQL table.

nnichols

7,4931 Huy hiệu vàng19 Huy hiệu bạc27 Huy hiệu đồng1 gold badge19 silver badges27 bronze badges

Lưu ý rằng tôi sử dụng

$result = mysql_query[ 'SELECT * FROM myTable WHERE expire_date BETWEEN NOW AND "' . $myDate . '"' ];
3 và không ít hơn, bởi vì nếu bạn chỉ so sánh rằng nó chưa đầy một tháng, thì bạn sẽ gửi email cho người dùng mỗi ngày trong tháng trước.Mar 28, 2012 at 16:08

s1lences1lences1lence

Đã trả lời ngày 28 tháng 3 năm 2012 lúc 16:032 gold badges16 silver badges33 bronze badges

Mikhailmikhail

$result = mysql_query[ 'SELECT * FROM myTable WHERE expire_date BETWEEN NOW AND "' . $myDate . '"' ];
0

8.4917 Huy hiệu vàng51 Huy hiệu bạc81 Huy hiệu đồngDec 10, 2018 at 18:11

Bạn có thể sử dụng chức năng

$result = mysql_query[ 'SELECT * FROM myTable WHERE expire_date BETWEEN NOW AND "' . $myDate . '"' ];
5 trong truy vấn MySQL của bạn.

$result = mysql_query[ 'SELECT * FROM myTable WHERE expire_date BETWEEN NOW AND "' . $myDate . '"' ];
1

Đã trả lời ngày 28 tháng 3 năm 2012 lúc 16:03Mar 28, 2012 at 16:03

1

Mikhailmikhail

$result = mysql_query[ 'SELECT * FROM myTable WHERE expire_date BETWEEN NOW AND "' . $myDate . '"' ];
2

8.4917 Huy hiệu vàng51 Huy hiệu bạc81 Huy hiệu đồngMar 28, 2012 at 16:12

1

Làm thế nào để có được tháng trước trong PHP?

Ví dụ 1: PHP nhận được tháng trước từ ngày hiện tại..
index.php.$ newDate = date ['y-m-d', strtotime ['-1 tháng']];echo $ newdate;?>.
Đầu ra: 2021-10-15 ..
index.php.$ ngày = "2021-02-01";$ newDate = date ['y-m-d', strtotime [$ date. '-1 tháng']];....
Đầu ra: Đọc thêm: Làm thế nào để có được ngày tháng tiếp theo trong PHP?2021-01-01 ..

Làm thế nào tôi có thể nhận được ngày đầu tiên và cuối cùng của tháng trong PHP?

Php echo 'ngày đầu tiên =' .date ['y-m-01']. '';echo 'ngày cuối cùng =' .date ['y-m-t'].echo 'First Date = ' . date['Y-m-01'] . '
'; echo 'Last Date = ' .
date['Y-m-t'] .

Làm thế nào để thêm ngày và tháng trong PHP?

Ví dụ 1: PHP thêm tháng cho đến nay..
index.php.$ ngày = "2021-11-01";$ newDate = date ['y-m-d', strtotime [$ date. ' + 3 tháng']];....
Đầu ra: 2022-02-01 ..
index.php.$ newDate = date ['y-m-d', strtotime [' + 4 tháng']];echo $ newdate;?>.
Đầu ra: Đọc thêm: Làm thế nào để thêm ngày cho đến nay trong PHP?2022-03-01.Tôi hy vọng nó có thể giúp bạn....

Bài Viết Liên Quan

Chủ Đề