Bất kỳ ai cũng cho tôi biết làm thế nào để có được tháng hiện tại và ba tháng trước bằng cách sử dụng PHP
Ví dụ:
echo date["y:M:d"];
Đầu ra sẽ là: 09: tháng 10: 20
Nhưng tôi cần:
Tháng tám
Tháng 9
Tháng Mười
như đầu ra.
Cảm ơn trước...
Fero
Hỏi ngày 20 tháng 10 năm 2009 lúc 12:32Oct 20, 2009 at 12:32
Để thể hiện toàn bộ văn bản của tháng, bạn cần vượt qua "F":
echo date["y:F:d"];
Trong tháng trước, bạn có thể sử dụng
echo date["y:F:d"];
0;Đã trả lời ngày 20 tháng 10 năm 2009 lúc 12:36Oct 20, 2009 at 12:36
Deniss Kozlovsdeniss KozlovsDeniss Kozlovs
4.7312 Huy hiệu vàng27 Huy hiệu bạc35 Huy hiệu Đồng2 gold badges27 silver badges35 bronze badges
1
Xem ra cho Fuah! Các câu trả lời khác sẽ thất bại khi được thực hiện vào ngày 31 của tháng. Sử dụng cái này thay thế:
/*
Handles month/year increment calculations in a safe way,
avoiding the pitfall of 'fuzzy' month units.
Returns a DateTime object with incremented month values, and a date value == 1.
*/
function incrementDate[$startDate, $monthIncrement = 0] {
$startingTimeStamp = $startDate->getTimestamp[];
// Get the month value of the given date:
$monthString = date['Y-m', $startingTimeStamp];
// Create a date string corresponding to the 1st of the give month,
// making it safe for monthly calculations:
$safeDateString = "first day of $monthString";
// Increment date by given month increments:
$incrementedDateString = "$safeDateString $monthIncrement month";
$newTimeStamp = strtotime[$incrementedDateString];
$newDate = DateTime::createFromFormat['U', $newTimeStamp];
return $newDate;
}
$currentDate = new DateTime[];
$oneMonthAgo = incrementDate[$currentDate, -1];
$twoMonthsAgo = incrementDate[$currentDate, -2];
$threeMonthsAgo = incrementDate[$currentDate, -3];
echo "THIS: ".$currentDate->format['F Y'] . "
";
echo "1 AGO: ".$oneMonthAgo->format['F Y'] . "
";
echo "2 AGO: ".$twoMonthsAgo->format['F Y'] . "
";
echo "3 AGO: ".$threeMonthsAgo->format['F Y'] . "
";
Để biết thêm, hãy xem câu trả lời của tôi ở đây
Đã trả lời ngày 27 tháng 11 năm 2010 lúc 20:18Nov 27, 2010 at 20:18
YarinyarinYarin
165K147 Huy hiệu vàng391 Huy hiệu bạc503 Huy hiệu đồng147 gold badges391 silver badges503 bronze badges
tháng này
date["y:M:d", mktime[0, 0, 0, date['m'], date['d'], date['Y']]];
tháng trước
date["y:M:d", mktime[0, 0, 0, date['m'] - 1, date['d'], date['Y']]];
date["y:M:d", mktime[0, 0, 0, date['m'] - 2, date['d'], date['Y']]];
Đã trả lời ngày 20 tháng 10 năm 2009 lúc 12:36Oct 20, 2009 at 12:36
martin.malekmartin.malekmartin.malek
Deniss Kozlovsdeniss Kozlovs2 gold badges19 silver badges31 bronze badges
5
4.7312 Huy hiệu vàng27 Huy hiệu bạc35 Huy hiệu Đồng
echo date['y:F:d']; // first month
echo date['y:F:d', strtotime['-1 month']]; // previous month
echo date['y:F:d', strtotime['-2 month']]; // second previous month
echo date['y:F:d', strtotime['-3 month']]; // third previous month
Xem ra cho Fuah! Các câu trả lời khác sẽ thất bại khi được thực hiện vào ngày 31 của tháng. Sử dụng cái này thay thế:Oct 20, 2009 at 12:37
Để biết thêm, hãy xem câu trả lời của tôi ở đâyNathan Kleyn
Đã trả lời ngày 27 tháng 11 năm 2010 lúc 20:183 gold badges31 silver badges49 bronze badges
Yarinyarin
$dp=new DatePeriod[date_create[],DateInterval::createFromDateString['last month'],2];
foreach[$dp as $dt] echo $dt->format["y:M:d"],"\n"; //or "y F d"
outputs:
- 09:Oct:20
- 09:Sep:20
- 09:Aug:20
165K147 Huy hiệu vàng391 Huy hiệu bạc503 Huy hiệu đồngOct 20, 2009 at 12:48
tháng nàydnagirl
tháng trước13 gold badges79 silver badges119 bronze badges
date["y:M:d", mktime[0, 0, 0, date['m'] - 1, date['d'], date['Y']]];
date["y:M:d", mktime[0, 0, 0, date['m'] - 2, date['d'], date['Y']]];
2.1272 Huy hiệu vàng19 Huy hiệu bạc31 Huy hiệu đồngOct 20, 2009 at 12:35
Hãy thử sử dụng chức năng
echo date["y:F:d"];
1 tích hợp trong PHP và sử dụng 'F' cho đầu ra văn bản đầy đủ:somacoreĐã trả lời ngày 20 tháng 10 năm 2009 lúc 12:373 gold badges23 silver badges19 bronze badges
DECLARE @STARTDATE INT
SET @STARTDATE = -12
WHILE @STARTDATE < 0
BEGIN
PRINT DATENAME[MONTH,DATEADD[MM,@STARTDATE,GETDATE[]]]+' '+ DATENAME[YEAR, DATEADD[MM,@STARTDATE ,GETDATE[]]]
SET @STARTDATE =@STARTDATE+1
END
Nathan Kleynnathan Kleyn
5.0583 Huy hiệu vàng31 Huy hiệu bạc49 Huy hiệu đồng52 gold badges191 silver badges238 bronze badges
Nếu bạn muốn trở thành OOP về nó, hãy thử điều này:Oct 18, 2011 at 10:11
echo date['F', strtotime['-2 month']], '
',
date['F', strtotime['last month']], '
',
date['F'];
Đã trả lời ngày 20 tháng 10 năm 2009 lúc 12:48Oct 20, 2009 at 12:41
dnagirldnagirlvava
20K13 Huy hiệu vàng79 Huy hiệu bạc119 Huy hiệu đồng11 gold badges62 silver badges78 bronze badges
2
Bạn sẽ cần sử dụng ngày ["F"]; Để có được biểu diễn văn bản đầy đủ của ngày.
Đã trả lời ngày 20 tháng 10 năm 2009 lúc 12:35
Somacoresomacore42 gold badges136 silver badges232 bronze badges
5.9643 Huy hiệu vàng23 Huy hiệu bạc19 Huy hiệu đồngOct 18, 2011 at 10:06