我正在试图弄清楚如何将我的日期设置为每个15日和月末...我到目前为止所得到的仅仅是距离我当前日期的+15天。 当前日期= date today.LOGIC:如果当前日期小于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 />`
有人可以帮助我......谢谢:)
答案 0 :(得分:1)
您可以按
获取每月的总天数<?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";
}
?>
答案 1 :(得分:1)
试试这个
- 查找每月的第一天
- 找到Lalji Nakum告诉
的最后一天- 查看您的日期与月份的第15天一样,例如bellow
醇>
if($today < $hDay){
echo 'Start : '. date("t-m-Y");
}else if ($today >= $hDay){
echo 'Start :'. $hDay;
}
下面, 1. $今天将是当前日期, 2. $ hDay将是11月15日这个月的第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;
}
答案 2 :(得分:1)
找到第15名: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++;
}
测试。
答案 3 :(得分:1)
您可以使用0和15作为当天值的mktime:
$a = date("m-d", mktime(0,0,0,$month,0));
$b = date("m-d", mktime(0,0,0,$month,15));
这将为您提供上一个月的最后一天和$。月的15.
答案 4 :(得分:0)
这个问题可能有足够多的答案。我也想提供一个答案。
$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手册 - clone