在另一个特定时间之后获取特定日期的Unix时间戳

时间:2015-12-23 08:52:29

标签: php date strtotime

我可以使用以下代码获取具体日期的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日。 我怎样才能做到这一点?

4 个答案:

答案 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();