Как получить временную метку Unix с определенной даты - PHP?

Отметка времени Unix, сгенерированная моим MKTIME, генерируется неправильно

(европейский формат)

Дата отправки: 15.02.2014 19:00

Код Unix: 1392508800

Эта возвращенная дата: 16/02/2014 00:00:00 Код, который должен быть возвращен: 1392490800

Используемый код После отправки формы значения фиксируются и присваиваются...

if ($_POST['Callbacl']){

    $CID=$_POST['ID'];
    $Notes = $_POST['callbacknotes'];

    $Time_H = $_POST['Time_Hour'];
    $Time_M = $_POST['Time_Minute'];
    $Date_Day = $_POST['Date_Day'];
    $Date_Month = $_POST['Date_Month'];
    $Date_Year = $_POST['Date_Year'];

    $Appt = mktime($Time_H, $Time_M,00, $Date_Month, $Date_Day, $Date_Year);
    echo $Appt . "<br>";
    die;
}

Опубликовать значения

     Array ( 
    [ID] => 1 
    [Time_Hour] => 19 
    [Time_Minute] => 00 
    [Date_Month] => 02 
    [Date_Day] => 15 
    [Date_Year] => 2014 
    [callbacknotes] => 
    [Callback] => Call Back 
    )

person DataCure    schedule 22.01.2014    source источник
comment
попробуйте так, чтобы установить формат даты в unix: $yourdate->format('U');   -  person Awlad Liton    schedule 22.01.2014
comment
Упростите образец. Получите все значения, связанные со временем, и опубликуйте только их, результат mktime возвращается и почему вы считаете его неверным. Как вы получаете значения, не имеет значения.   -  person MarcinJuraszek    schedule 22.01.2014
comment
Можете ли вы показать нам вывод: print_r($_POST)?   -  person Milan Babuškov    schedule 22.01.2014
comment
Неустранимая ошибка: необработанное исключение "Исключение" с сообщением "DateTime::__construct() [‹a href='datetime.--construct'›datetime.--construct‹/a›]: не удалось проанализировать строку времени (15 февраля) /2014 19:00,00) в позиции 17 (0): Неожиданный символ в /home/a5556232/public_html/clients_search_client.php:57 Трассировка стека: #0 /home/a5556232/public_html/clients_search_client.php(57): DateTime-›__construct('15/02/2014 19:0...') #1 {main} добавлено в /home/a5556232/public_html/clients_search_client.php в строке 57   -  person DataCure    schedule 22.01.2014
comment
Милан Бабсков: Массив ( [ID] => 1 [Time_Hour] => 19 [Time_Minute] => 00 [Date_Month] => 02 [Date_Day] => 15 [Date_Year] => 2014 [callbacknotes] => [Callback] = > Перезвоните )   -  person DataCure    schedule 22.01.2014
comment
Установите часовой пояс по умолчанию date_default_timezone_set('America/Los_Angeles');, это может вам помочь.   -  person Kaushik    schedule 22.01.2014


Ответы (1)


Я предполагаю, что ваш часовой пояс в php.ini не является вашим предпочтительным. Попробуйте установить правильный часовой пояс в php.ini или добавьте следующий код в начало вашего блока.

date_default_timezone_set('your time zone');

Вот список поддерживаемых часовых поясов в PHP:

http://www.php.net/manual/en/timezones.php

person Marko Novakovic    schedule 22.01.2014
comment
Оказывается, это правильный ответ, сэр; снимаю шляпу перед вами, я просто не могу понять, почему часовой пояс влияет на количество секунд между 00:00:00 01/01/1970 и указанной датой (не должно ли значение быть одинаковым независимо от того, где в мире вы живете) так как у каждого есть 60 секунд в 1 минуте и 60 минут в 1 часе и т. д. и т. д. Как бы то ни было, спасибо - person DataCure; 22.01.2014
comment
PHP mktime возвращает разницу между 00:00:00 01/01/1970 UTC и указанной датой в выбранном вами часовом поясе. - person Marko Novakovic; 22.01.2014