2015-12-23 4 views
-2

я могу получить, например, 19 марта на определенную дату с этим кодом:Получить Unix метку определенной даты после другого определенного времени

$date = strtotime(" 19 March", $current_time); 

К примеру, если я дал UniX метку 1 января 2010 года, как вход, он дал мне 19 марта 2010 года. Но если я дам отметку unix от 20 марта 2010 года, я все равно получаю 19 марта 2010 года. Я хочу получить следующий 19 марта, который в этом случае был бы 19 марта 2011 года. Как я могу это сделать?

+0

Google 'StrToTime()' функция, это все на PHP стр. – Epodax

+0

Я уже читал strtotime(). Я не мог найти ничего для моей проблемы. Возможно, это не привлекло моего внимания. Поэтому, если у вас есть какой-либо ресурс, я был бы счастлив получить его. Но сейчас этот комментарий мне не помогает. @Epodax – DrStein

ответ

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))); 
} 
+0

Я предполагаю, что один из $ given_date - $ get? Также мне понравился ответ, просто используя strtotime, я думаю, что нет никакого способа. – DrStein

+0

Я отправил вам возможность работать –

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

Использование PHP DateTime это может быть достигнуто следующим образом:

// New DateTime object 
$date = new DateTime('2010-03-19'); 

// Add a year 
$date->add(new DateInterval('P1Y')); 

// Output timestamp 
echo $date->getTimestamp(); 
Смежные вопросы