PHP date (), похоже, не получает мое точное время [дубликат]

Ну, простыми словами:

Вы пытаетесь получить доступ к объекту, который не создан или в настоящее время не находится в памяти.

Итак, как это решить:

  1. Отладить и отпустить отладчик ... Он сразу приведет вас к переменной, которая сломана ... Теперь ваша задача - просто исправить это. Используя новое ключевое слово в соответствующем месте.
  2. Если это вызвано некоторыми командами базы данных, потому что объект отсутствует, все, что вам нужно сделать, это выполнить нулевую проверку и обработать его:
    if (i == null) {
        // Handle this
    }
    
  3. Самый сложный. если GC уже собрал объект ... Это обычно происходит, если вы пытаетесь найти объект, используя строки ... То есть, найдя его по имени объекта, может случиться, что GC, возможно, уже очистил его ... Это трудно найти и станет проблемой. Лучшим способом решения этой проблемы является выполнение нулевых проверок везде, где это необходимо в процессе разработки. Это сэкономит вам много времени.

Поиск по имени означает, что некоторые фреймворки позволяют использовать FIndObjects с помощью строк, а код может выглядеть так: FindObject («ObjectName»);

1
задан XCode Beginner 1 January 2011 в 11:19
поделиться

4 ответа

, потому что по умолчанию он показывает время по Гринвичу, которое вы можете изменить для своего региона с помощью следующего кода

   date_default_timezone_set("Asia/Bangkok");//set you countary name from below timezone list
    echo $date = date("Y-m-d H:i:s", time());//now it will show "Asia/Bangkok" or your date time

Список поддерживаемых часовых поясов http://www.php.net/manual/ ан / timezones.php

1
ответ дан Hassan Saeed 4 September 2018 в 07:10
поделиться

Вам нужно будет использовать либо date_default_timezone_set () , либо объект datetime , и пользователь должен будет установить свой собственный часовой пояс в меню опций где-нибудь.

В противном случае PHP является языком на стороне сервера и не имеет представления, какое время он находится на конце пользователя.

Вам придется использовать язык на стороне клиента, JavaScript. Вы можете либо просто статично, либо отображать текущее системное время пользователя, либо если по какой-то причине вам нужно было получить время на PHP, вы можете использовать некоторые подобные AJAX скрипты, чтобы JavaScript отправил свое время в скрипт при загрузке страницы .

2
ответ дан Phoenix 4 September 2018 в 07:10
поделиться

// Изменить формат даты

$dateInfo = date_parse_from_format('m-d-Y', $data['post_date']);
$unixTimestamp = mktime(
        $dateInfo['hour'], $dateInfo['minute'], $dateInfo['second'],
        $dateInfo['month'], $dateInfo['day'], $dateInfo['year']
    );
$data['post_date']=date('Y-m-d',$unixTimestamp);
0
ответ дан Shal 4 September 2018 в 07:10
поделиться

Попробуйте установить часовой пояс: date_default_timezone_set или через ini

Обновление: вы не можете установить правильную дату для своих пользователей. Javascript может справиться с этим, но вам придется полагаться на систему пользователя, чтобы определить свое время.

1
ответ дан Thorpe Obazee 4 September 2018 в 07:10
поделиться