Nano Hash - криптовалюты, майнинг, программирование

Функция date() выводит неверный результат - PHP

Вот что я сделал -:

  1. Создан результат UNIX_TIMESTAMP в mysql. Вышло 1360756718 секунды.
  2. Поскольку я нахожусь в GMT +5.30, получил количество секунд в 5 часах и 30 минутах. Результат: 19800 секунды
  3. Запустил эту функцию -> date('j M Y H:i:s',(1360756718+19800)).

Но, к сожалению, ответ был 1 hour раньше первоначального времени. И я имею в виду именно 1 hour. Результат был 13 Feb 2013 18:28:38, который должен был быть 13 Feb 2013 17:28:38.

Где я ношу?

13.02.2013

  • У вас есть правильные настройки часового пояса в вашей базе данных MySQL и в вашей конфигурации PHP? 13.02.2013
  • Что возвращает date_timezone_get() и какой у вас реальный часовой пояс? 13.02.2013
  • date_default_timezone_get() возвращает Europe/Berlin. Мой Asia/Kolkata. Но какое это имеет значение, поскольку я делаю это с временной меткой unix. 13.02.2013
  • Вы конвертируете отметку времени Unix в строку даты, используя date(), что, вероятно, меняет вашу временную метку на правильный часовой пояс. 13.02.2013

Ответы:


1

Ну, вы находитесь в +5:30, но с переходом на летнее время мы все еще на 1 час назад. так что вы сейчас только +4:30

13.02.2013
  • можешь объяснить немного подробнее 13.02.2013
  • php.net/manual/en/function.date.php, здесь вы можно увидеть все, что может предложить функция date(). Существует аргумент I, который может сказать вам, находится ли дата в летнем времени или нет. Если это так, вы добавляете еще один час к результату. 13.02.2013
  • Я не могу найти аргумент I 13.02.2013
  • хм... в таблице параметров есть целый раздел, посвященный часовому поясу. Второй - I (заглавная i). Просто найдите дневной свет на странице, и вы его найдете. Есть также несколько примеров с maketime, которые могут решить вашу проблему. 13.02.2013

  • 2

    Я думаю, что ваш часовой пояс установлен неправильно. Вам нужно покопаться в настройках Apache/PHP/Mysql, чтобы узнать, на что они установлены.

    13.02.2013

    3
    echo date( 'd.m.Y H:i:s', '1360756718' ); // 13.02.2013 13:58:38
    echo date( 'd.m.Y H:i:s',  ( '1360756718'+19800 ) ); // 13.02.2013 19:28:38
    

    Для меня это вышло так, как планировалось. Вы уверены, что начали в нужное время? Как уже упоминалось, проблема, скорее всего, заключается в вашем часовом поясе или летнем времени.

    13.02.2013
  • не должен ли ваш результат быть 13.02.2013 17:28:38. Я думаю, что возился с функциями date(). Пожалуйста, кто-нибудь может объяснить это 13.02.2013

  • 4

    Сначала проверьте свой текущий часовой пояс. Здесь вы также можете проверить все поддерживаемые часовые пояса

    13.02.2013

    5

    Вы можете попробовать добавить:

    ini_set('date.timezone', 'My/Timezone');
    

    Начиная с php 5.1 также можно сделать:

    date_default_timezone_set ( string $timezone_identifier )
    

    http://www.php.net/manual/en/function.date-default-timezone-set.php

    Чтобы установить время в соответствии с вашим часовым поясом. Часовые пояса, доступные для php, находятся здесь:

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

    13.02.2013

    6

    в других ответах говорится, что вы должны проверить и исправить настройки часового пояса. Я бы так сделал, потому что так правильнее (насчет перехода на летнее время и так далее).

    Если вы хотите использовать простой способ, попробуйте функцию gmdate:

    string gmdate ( string $format [, int $timestamp = time() ] )
    

    Этот всегда будет рассчитываться по Гринвичу — вам не нужно проверять настройки сервера. (Однако он также будет игнорировать переход на летнее время.)

    13.02.2013
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..