我需要在昨天之前获得昨天的日期和6月底的日期。 我所做的是:
$yesterday_day = date("d") - 1;
$yesterday_month = date("m");
$yesterday_year = date("Y");
$yesterday_date = date("m/d/Y", mktime(0,0,0,$yesterday_month,$yesterday_day,$yesterday_year));
$day_before_1 = date("d") - 1;
$month_before_1 = date("m")-1;
$year_before_1 = date("Y");
$date_before_1 = date("m/t/Y", mktime(0,0,0,$month_before_1,$day_before_1,$year_before_1));
当我echo
对昨天日期的罚款总是正确的..但是在我试图将我的电脑日期改为2014年3月31日(或3月30日)之前的月末发生了奇怪的事情。月底之前应该是2014年2月28日但是它的展示2014年3月31日..如果我从3月29日之前和之前选择它是正常的..
我怀疑是因为2月只有28天,但不知道如何解决这个问题。
答案 0 :(得分:1)
使用strtotime,卢克 它将为您提供下次使用所需的时间戳作为第二个参数到日期函数。
答案 1 :(得分:0)
最后我解决了这个问题。这个想法很简单,仍然使用srttotime但我不使用-x month ..相反,我使用-x day ..后面的代码将显示它:
$yesterday_day = date("d")-1;
$yesterday_month = date("m");
$yesterday_year = date("Y");
//getting yesterday date
$date_query = date("m/d/Y", mktime (0,0,0, $yesterday_month, $yesterday_day, $yesterday_year));
$day_before = date("d");
if($day_before==1){
$day_before =substr($date_query,3,2)+1;
}
$date_query_before_1 = date("m/d/Y",strtotime("-$day_before day"));
//to get number of day in that month using substr
$day_before += substr($date_query_before_1,3,2);
$date_query_before_2 = date("m/d/Y",strtotime("-$day_before day"));
$day_before += substr($date_query_before_2,3,2);
$date_query_before_3 = date("m/d/Y",strtotime("-$day_before day"));
$day_before += substr($date_query_before_3,3,2);
$date_query_before_4 = date("m/d/Y",strtotime("-$day_before day"));
$day_before += substr($date_query_before_4,3,2);
$date_query_before_5 = date("m/d/Y",strtotime("-$day_before day"));
$day_before += substr($date_query_before_5,3,2);
$date_query_before_6 = date("m/d/Y",strtotime("-$day_before day"));