我可以使用以下代码获取具体日期的3月19日:
$date = strtotime(" 19 March", $current_time);
例如,如果我将2010年1月1日的unix时间戳作为输入,它给了我2010年3月19日。但是如果我给出了2010年3月20日的unix时间戳,我仍然会在2010年3月19日。我想要的是获得3月19日,在这种情况下,它将是2011年3月19日。 我怎样才能做到这一点?
答案 0 :(得分:3)
使用PHP DateTime,可以按如下方式实现:
// New DateTime object
$date = new DateTime('2010-03-19');
// Add a year
$date->add(new DateInterval('P1Y'));
// Output timestamp
echo $date->getTimestamp();
答案 1 :(得分:1)
你可以做像
这样的事情$get = "19 March";
$given_date = "01 January 2010";
$date_month = date('d F',strtotime($given_date));
$year = date('Y',strtotime($given_date));
if(strtotime($given_date) - strtotime($date_month) < 0){
echo date('l,d F Y',strtotime("$get $year"));
}else{
echo date('l,d F Y',strtotime("$get ".($year+1)));
}
答案 2 :(得分:0)
您应该首先从指定日期获得year
。然后,您可以使用年份创建19 march
日期并使用strtotime()
来获取时间戳。
//add format according to your current_time variable format
$date = DateTime::createFromFormat("Y-m-d", $current_time);
echo $date->format("Y");
$fixed_date = strtotime($date->format("Y")."-03-19");
答案 3 :(得分:0)
您可以指定要在一天中增加或减去多少天或一周,以及使用这些功能设置时间
$nextUpdate = new DateTime("+5 day 1:00 pm");
echo $nextUpdate->getTimestamp();
$nextWeek = new DateTime("+1 week 9:00 am");
echo $nextWeek->getTimestamp();