2015-01-23 2 views
1

Установка временной отметки Php и MysqlУстановка временной отметки Php и Mysql

Мне нужно установить временную метку, например. 4 часа или интервал голова отдельно

и 2 часа в голове отдельно

в моей базе данных у меня есть свои столбцы как метки время.

Я знаю, что могу сделать что-то похожее на это, но не уверен, что это правильно. любая помощь

// For 4 hours a head of time 

$dt2=date("Y-m-d 04:i:s"); 


//For 2 days a head 

$dt2=date("Y-m-02 H:i:s"); 

ответ

1
//For 4 hours ahead of time 
$dt2 = date("Y-m-d H:i:s", strtotime('+4 hours')); 

//For 2 days ahead of time 
$dt2 = date("Y-m-d H:i:s", strtotime('+2 days')); 
+0

Спасибо за ваш ответ. он работает сейчас. Пожалуйста, что может быть лучшим способом отправить для примера значение 4 из формы. Я попробовал это $ dt2 = date ("Y-m-d H: i: s", strtotime ('+. $ _ POST ["value_4"] hours')); – Sectona

+0

Привет, Sectona, для POST это значение вам нужно создать элемент html '

' и установить поле '' равное значению, которое вы хотите POST. Его слишком много, чтобы объяснить в поле для комментариев, поэтому, если вам нужна дополнительная помощь, напишите новую тему, и я или кто-то другой вам поможет. –

+0

Кроме того, если вы нашли мой ответ полезным, отметьте его как ваш принятый ответ, так как это поможет мне создать мою репутацию на сайте, а также показать другим посетителям, что было лучшим ответом на вашу проблему :) –

0

Вы должны использовать функцию StrToTime() (http://php.net/manual/en/function.strtotime.php).

Для ваших примеров:

//+2 hours<br> 
strtotime("+2 hours"); 

// +2 days<br> 
strtotime("+2 days") 

Edit: за то, что вы спрашиваете, о опубликованных значений, синтаксис выглядит так:

strtotime("+2".$_POST['field_name']." days"); 

Вы можете использовать часы/дни/месяцы/недель/лет и + или -

+0

Спасибо за ваш ответ. он работает сейчас. Пожалуйста, что может быть лучшим способом опубликовать для примера значение 2 из формы. Я попробовал это $ dt2 = strtotime ('+. $ _ POST ["value_2"] hours'); – Sectona

1

На мой взгляд, гораздо лучше работать с полем DateTime и DateTime c деваха.

У вас есть возможность очень легко модифицировать объекты. Например:

$aktDate = new \DateTime(); 

Теперь у вас есть актуальная дата и время в объекте. Если вы хотите, вы можете рассказать о строковой структуре функции DateTime, поэтому установите дату вручную.

$aktDate = new \DateTime('Y-m-d 04:i:s'); 

Не вы можете изменить ваши даты, если вы хотите с функцией modify.

в вашем случае:

$pastDate = clone $aktDate; 
$pastDate->modify('+2 days'); 

$futureDate = clone $aktDate; 
$futureDate->modify('+4 days'); 

if($pastDate < $aktDate && $aktDate < $futureDate) { 
    // do something 
} 

Мне нравится функция DateTime гораздо больше, потому что его читаемым и вы можете работать непосредственно с DateTime полей из базы данных MySQL, если у вас есть такие поля. Вы можете написать этот пример намного короче, но у вас есть более удобная читаемость.

0
$date = new DateTime('now'); 
$date->modify('+2 days'); 
echo $date->format('Y-m-d H:i:s'); 

$date = new DateTime('now'); 
$date->modify('+4 hours'); 
echo $date->format('Y-m-d H:i:s'); 
+0

Спасибо всем. Я проверяю это и вижу, как это происходит – Sectona

Смежные вопросы