Tôi đã cố gắng dành thời gian với PHP. Ngày bắt đầu 2017-01-29 đến 2017-12-29. Nhưng điều đó đã xảy ra tôi không thể in vào tháng Hai vì tháng tối đa chỉ là 28 ngày. Làm thế nào để đặt hàng in nào nhưng với ngày tháng hai lên đến 28.
Kịch bản của tôi:
date_default_timezone_set['UTC'];
// Start date
$date = '2017-01-29';
// End date
$end_date = '2017-12-29';
while [strtotime[$date] modify[ 'last day of next month' ];
$date = $d->format[ 'Y-m-d' ];
}
Bây giờ điều này có thể không hoàn toàn là những gì bạn quan tâm vì bạn có thể muốn thử các ngày bắt đầu khác nhau và nó không đến cuối tháng tới hoặc bạn có thể muốn nó sử dụng 2/28 cho ngày tháng Hai, nhưng sau đó Quay trở lại ngày 29 cho mỗi tháng liên tiếp. Nhưng điều này sẽ giúp bạn gần gũi hơn với logic bạn đang cần. Tôi nghĩ rằng sử dụng DateTime sẽ là một phần trong câu trả lời của bạn.
Đã trả lời ngày 5 tháng 6 năm 2017 lúc 9:18Jun 5, 2017 at 9:18
Davidethelldavidethelldavidethell
Huy hiệu vàng 11,5K55 gold badges41 silver badges60 bronze badges
3
Một cách tiếp cận khác bạn có thể thử nơi bạn không phải sử dụng DateTime
.
date_default_timezone_set['UTC'];
// Start date
$date = '2017-01-29';
// End date
$end_date = '2017-12-29';
while [strtotime[$date]
Đã trả lời ngày 5 tháng 6 năm 2017 lúc 9:03Jun 5, 2017 at 9:03
6
Lớp Dateperiod
[Php 5> = 5.3.0, Php 7, Php 8]
Giới thiệu
Đại diện cho một khoảng thời gian ngày.
Một khoảng thời gian ngày cho phép lặp qua một tập hợp ngày và thời gian, định kỳ theo định kỳ, trong một khoảng thời gian nhất định.
Tóm tắt lớp
/ * Hằng số */
/* Đặc tính */
/ * Phương pháp */
public__Construct [Chuỗi ____10, int
1 = 0]
__construct[string date_default_timezone_set['UTC'];
// Start date
$date = '2017-01-29';
// End date
$end_date = '2017-12-29';
while [strtotime[$date] modify[ 'last day of next month' ];
$date = $d->format[ 'Y-m-d' ];
}
0, int date_default_timezone_set['UTC'];
// Start date
$date = '2017-01-29';
// End date
$end_date = '2017-12-29';
while [strtotime[$date] modify[ 'last day of next month' ];
$date = $d->format[ 'Y-m-d' ];
}
1 = 0]date_default_timezone_set['UTC'];
// Start date
$date = '2017-01-29';
// End date
$end_date = '2017-12-29';
while [strtotime[$date] modify[ 'last day of next month' ];
$date = $d->format[ 'Y-m-d' ];
}
}
Đặc tính
tái phátSố lượng tái phát, nếu phiên bản DatePeriod đã được tạo bằng cách vượt qua rõ ràng
date_default_timezone_set['UTC'];
// Start date
$date = '2017-01-29';
// End date
$end_date = '2017-12-29';
while [strtotime[$date] modify[ 'last day of next month' ];
$date = $d->format[ 'Y-m-d' ];
}
2. Xem thêm Dateperiod :: GetRecurences [].DatePeriod instance had been created by explicitly passing date_default_timezone_set['UTC'];
// Start date
$date = '2017-01-29';
// End date
$end_date = '2017-12-29';
while [strtotime[$date] modify[ 'last day of next month' ];
$date = $d->format[ 'Y-m-d' ];
}
2. See also
DatePeriod::getRecurrences[]. include_end_dateCó bao gồm ngày kết thúc trong tập hợp ngày định kỳ hay không.
include_start_dateCó bao gồm ngày bắt đầu trong tập hợp ngày định kỳ hay không.
Ngày bắt đầu của kỳ.
hiện hànhTrong quá trình lặp lại, điều này sẽ chứa ngày hiện tại trong khoảng thời gian.
chấm dứtNgày kết thúc của kỳ.
khoảng thời gianMột đặc tả khoảng thời gian lặp lại ISO 8601.
Thay đổi
8.2.0 | Hằng số 3 và thuộc tính bao gồm_end_date đã được thêm vào. 3 constant and include_end_date property have been added.
|
8.0.0 | DatePeriod thực hiện iteratoraggregate ngay bây giờ. Trước đây, Traversable đã được thực hiện thay thế. implements IteratorAggregate now. Previously, Traversable was implemented instead. |
Mục lục
- DatePeriod :: __ Xây dựng - Tạo một đối tượng Dateperiod mới
- Dateperiod :: getdateinterval - nhận được khoảng thời gian
- Dateperiod :: getenddate - nhận ngày kết thúc
- DatePeriod :: GetRecurences - Nhận số lượng tái phát
- DatePeriod :: GetStartDate - Nhận ngày bắt đầu
Thư tại Pascalhofmann Dot de ¶ ¶
5 năm trước
date_default_timezone_set['UTC'];
// Start date
$date = '2017-01-29';
// End date
$end_date = '2017-12-29';
while [strtotime[$date] modify[ 'last day of next month' ];
$date = $d->format[ 'Y-m-d' ];
}
4