我正试图弄清楚如何将日期设置为每15日和月末。。。到目前为止,距离我目前的约会只有+15天。。当前日期=今天的日期。逻辑:如果当前日期小于15,则循环的开始日期在月底,如果当前日期等于或大于15,则环路的开始日期为15。所以在我的情况下,我目前的日期是11月9日,所以第一次输出应该是11月30日。
$y = 1;
while ($y <= $num_term) { // num_term is equal to the number of output
$month_line = strtotime("15 day", strtotime("$month_sched"));
$day = date("d", $month_line);
$month_int = date("M-d", $month_line);
}
输出:
Nov 24`<br />`
Dec 9`<br />`
Dec 24`<br />`
有人能帮我吗…谢谢:)
试试这个
- 查找每月的第一天
- 正如Lalji Nakum所说,找到一个月的最后一天
- 将你的日期与每月15日核对如下
if($today < $hDay){
echo 'Start : '. date("t-m-Y");
}else if ($today >= $hDay){
echo 'Start :'. $hDay;
}
在这里,1.$今天将是当前日期,2.$hDay将是一个月的第15天,就像11月15日一样
这是的样本代码
echo 'First day of month '.
$fDay = date('01-m-Y');
echo '<br> 15th day of month '.
$hDay = date('d-m-Y', (strtotime($fDay)+ (86400 * 15)));
echo '<br> Last Day of month '.
$lDay = date("t-m-Y");
echo '<br> Current day '.
$today = date('d-m-Y');
//$today = date('d-m-Y', strtotime($hDay)+86400 );
echo '<br>';
if($today < $hDay){
echo 'Start : '. $lDay = date("t-m-Y");
}else if ($today >= $hDay){
echo 'Start :'. $hDay;
}
您可以通过获得一个月的总天数
<?php
$a_date = "2015-11-09";
echo totaldays = date("t", strtotime($a_date));
?>
您可以从当前日期获取当前日期:
<?php
echo curday = date('d');
if(curday==totaldays){
echo "lastday";
}
if(curday==15)
{
echo "15th day";
}
?>
find 15th:strtotime($month_sched." +14 day");
查找月份的最后一天:strtotime($month_sched." next month - 1 hour");
请尝试以下代码:
<?php
$y=1;
$num_term = 10;
//start date
$month_sched = date("2012-02-01");
while($y <= $num_term) {
//15th
$month_line_15 = strtotime($month_sched." +14 day");
//last day of month
$month_line_last = strtotime($month_sched." next month - 1 hour");
$day = date("M-d", $month_line_15);
$month_int = date("M-d", $month_line_last);
$month_sched = date("Y-m-d",strtotime($month_sched." +1month"));
$y++;
}
经过测试。
PHP隐藏
您可以使用0和15作为当天值的mktime:
$a = date("m-d", mktime(0,0,0,$month,0));
$b = date("m-d", mktime(0,0,0,$month,15));
这将为您提供上一个月的最后一天和第15天。$month
这个问题可能有足够多的答案。我也想提供一个答案。
$beginDate = new DateTime('15 January');
// clone start date
$endDate = clone $beginDate;
// Add 1 year to start date
$endDate->modify('+1 year');
// Increase with an interval of one month
$dateInterval = new DateInterval('P1M');
$dateRange = new DatePeriod($beginDate, $dateInterval, $endDate);
foreach ($dateRange as $day) {
echo $day->format('Y-m-d')."<br />"; // 15th
echo $day->format('Y-m-t')."<br />"; // Last month day
}
参考文献
PHP手册-DateTime
PHP手册-DateInterval
PHP手册-DatePeriod
PHP手册-克隆