php сегодняшняя дата в формате mysql

Как вставить текущую дату в базу данных MySQL

Решение

Вы не должны передавать date или datetime из PHP, если вы хотите использовать date / datetime во время выполнения вашего запроса, вместо этого вы можете использовать встроенные функции MySQL для этого

Вставить текущую дату & использование времени NOW()

Для вставки только текущей даты используйте CURRENT_DATE()

Эти запросы предполагают, что у вас есть столбец с именем dt в вашем delivery Таблица. Пожалуйста, измените имя столбца, если отличается в вашей схеме, или добавьте date или же datetime столбец в вашей таблице, если у вас еще нет

Другие решения

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

Если вы хотите вставить свою собственную дату, используйте в соответствии с ниже-

Если вы хотите указать текущую дату, используйте

Примечание: если вы хотите вставить со временем, используйте now ().

Я не могу понять тебя ясно. Обычно мы вставляем текущую дату как

Используйте now () в своем запросе, чтобы получить текущую дату.

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

Вы можете использовать функцию timestamp / datetime / now () для сохранения текущей даты (выберите ее в соответствии с вашими требованиями)

Источник

PHP date() format when inserting into datetime in MySQL

What is the correct format to pass to the date() function in PHP if I want to insert the result into a MySQL datetime type column?

I’ve been trying date(‘Y-M-D G:i:s’) but that just inserts «0000-00-00 00:00:00» everytime.

13 Answers 13

Try: date(‘Y-m-d H:i:s’) which uses the numeric equivalents.

From the comments of php’s date() manual page:

Here’s an alternative solution: if you have the date in PHP as a timestamp, bypass handling it with PHP and let the DB take care of transforming it by using the FROM_UNIXTIME function.

php сегодняшняя дата в формате mysql. Смотреть фото php сегодняшняя дата в формате mysql. Смотреть картинку php сегодняшняя дата в формате mysql. Картинка про php сегодняшняя дата в формате mysql. Фото php сегодняшняя дата в формате mysql

I use the following PHP code to create a variable that I insert into a MySQL DATETIME column.

This will hold the server’s current Date and Time.

php сегодняшняя дата в формате mysql. Смотреть фото php сегодняшняя дата в формате mysql. Смотреть картинку php сегодняшняя дата в формате mysql. Картинка про php сегодняшняя дата в формате mysql. Фото php сегодняшняя дата в формате mysql

I use this function (PHP 7)

Older versions of PHP (PHP

php сегодняшняя дата в формате mysql. Смотреть фото php сегодняшняя дата в формате mysql. Смотреть картинку php сегодняшняя дата в формате mysql. Картинка про php сегодняшняя дата в формате mysql. Фото php сегодняшняя дата в формате mysql

Format time stamp to MySQL DATETIME column :

php сегодняшняя дата в формате mysql. Смотреть фото php сегодняшняя дата в формате mysql. Смотреть картинку php сегодняшняя дата в формате mysql. Картинка про php сегодняшняя дата в формате mysql. Фото php сегодняшняя дата в формате mysql

Format MySQL datetime with PHP

php сегодняшняя дата в формате mysql. Смотреть фото php сегодняшняя дата в формате mysql. Смотреть картинку php сегодняшняя дата в формате mysql. Картинка про php сегодняшняя дата в формате mysql. Фото php сегодняшняя дата в формате mysql

php сегодняшняя дата в формате mysql. Смотреть фото php сегодняшняя дата в формате mysql. Смотреть картинку php сегодняшняя дата в формате mysql. Картинка про php сегодняшняя дата в формате mysql. Фото php сегодняшняя дата в формате mysql

There is no need no use the date() method from PHP if you don’t use a timestamp. If dateposted is a datetime column, you can insert the current date like this:

php сегодняшняя дата в формате mysql. Смотреть фото php сегодняшняя дата в формате mysql. Смотреть картинку php сегодняшняя дата в формате mysql. Картинка про php сегодняшняя дата в формате mysql. Фото php сегодняшняя дата в формате mysql

This has been driving me mad looking for a simple answer. Finally I made this function that seems to catch all input and give a good SQL string that is correct or at least valid and checkable. If it’s 1999-12-31 it’s probably wrong but won’t throw a bad error in MySQL.

Note: I understood the question referring to current time.

Источник

Дата и время в PHP

В распределенных системах, таких, как Интернет, время играет особую роль. Из-за незначительного расхождения системных часов игрок на рынке Forex может потерять десятки тысяч долларов в течение нескольких минут; система деловой разведки ошибется в составлении прогноза; серверы NNTP в процессе синхронизации потеряют важную информацию, нужную пользователю и т.д.

PHP-функции для работы с датой и временем

PHP содержит множество функций для работы с датой и временем. Наиболее употребимыми являются:

time() Возвращает текущее абсолютное время. Это число равно количеству секунд, которое прошло с полуночи 1 января 1970 года (с начала эпохи UNIX). getdate( ) Считывает информацию о дате и времени. Возвращает ассоциативный массив, содержащий информацию по заданному или по текущему (по умолчанию) времени. Массив содержит следующие элементы:

secondsСекунды (0-59)
minutesМинуты (0-59)
hoursЧасы (0-23)
mdayДень месяца (1-31)
wdayДень недели (0-6), начиная с воскресенья
monМесяц (1-12)
yearГод
ydayДень года (0-365)
weekdayНазвание дня недели (например, Friday)
monthНазвание месяца (например, January)
0Абсолютное время

Пример 1

РЕЗУЛЬТАТ ПРИМЕРА 1:

seconds = 28
minutes = 45
hours = 4
mday = 20
wday = 1
mon = 9
year = 2021
yday = 262
weekday = Monday
month = September
0 = 1632102328
Сегодня: 20.9.2021

date() Форматирование даты и времени. Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате. Строка формата может содержать следующие коды:

Любая другая информация, включенная в строку формата, будет вставлена в возвращаемую строку. Если в строку формата нужно добавить символы, которые сами по себе являются кодами формата, то перед ними надо поставить обратную косую черту «\». Символы, которые становятся кодами формата при добавлении к ним обратной косой, нужно предварять двумя косыми. Например, если необходимо добавить в строку «n», то надо ввести «\\n», поскольку «\n» является символом новой строки.

Пример 2

РЕЗУЛЬТАТ ПРИМЕРА 2:

Сегодня 20.09.21 04:45

часы
минуты
секунды
месяц
день месяца
год

Пример 3

РЕЗУЛЬТАТ ПРИМЕРА 3:

22 January 1971, at 1.30 pm, Friday

Внимание! Дата может находиться в допустимом диапазоне, но остальные функции работы с датами не примут это значение. Так, нельзя использовать mktime() для годов до 1902, а также следует использовать ее осторожно для годов до 1970.

Пример 4

РЕЗУЛЬТАТ ПРИМЕРА 4:

Monday 20 September 2021 04:45
Сегодня Monday 20 September 2021 04:45:28
MSK

Источник

Работа с датами и временем в PHP и MySQL

При работе на любом языке программирования работа с датами и временем часто является тривиальной и простой задачей. То есть, пока не будут поддерживаться часовые пояса. К счастью, в PHP есть один из самых мощных инструментов даты / времени, которые помогут вам справиться со всеми видами проблем, связанных с временем: отметки времени Unix, форматирование дат для потребления человеком, отображение времени с часовыми поясами, разница между текущим и вторым Вторник следующего месяца и т. Д. В этой статье я познакомлю вас с основами PHP-функций времени ( time() mktime() date()

PHP Дата и Время Функции

UTC, также известное под своим полным названием «Всемирное координированное время», также называемое «GMT», а иногда «зулусское время», — это время на долготе 0 градусов. Все остальные часовые пояса в мире выражены как положительные или отрицательные смещения от этого времени. Обработка времени в UTC и Unix облегчит вашу жизнь, когда вам нужно иметь дело с часовыми поясами. Я расскажу об этом позже, но давайте пока проигнорируем проблемы с часовыми поясами и рассмотрим некоторые временные функции.

Получение текущего времени Unix

time() Чтобы проиллюстрировать это, я буду использовать интерактивную оболочку CLI PHP.

Если вам нужно представление массива времени Unix, используйте getdate() Он принимает необязательный аргумент метки времени Unix, но по умолчанию принимает значение time()

Форматирование времени Unix

Время Unix может быть легко отформатировано практически в любую строку, которую человек захочет прочитать. date() Если дополнительная временная метка не указана, используется значение time()

Строка форматирования «r» возвращает время, отформатированное в соответствии с RFC 2822. Конечно, вы можете использовать другие спецификаторы для определения ваших собственных пользовательских форматов.

Полный список допустимых символов форматирования см. На странице date() в документации PHP. Однако эта функция становится более полезной в сочетании с функциями mktime() strtotime()

Создание Unix Time из данного времени

mktime() Требуется несколько целочисленных аргументов, чтобы установить каждую часть даты в следующем порядке:

Вы устанавливаете isDST

Вы можете видеть, что mktime() Например, если вы храните временные метки как целые числа (время Unix) в MySQL (предзнаменование кого-либо?), Очень легко настроить общий диапазон запросов на текущий год.

Разбор английской даты в Unix Time

Объекты PHP DateTime и DateTimeZone

PHP-объект DateTime Метод конструктора принимает строковое представление времени, очень похожее на strtotime() Значением по умолчанию, если аргумент не указан, является «сейчас».

Метод DateTime format() Объекты DateTime format()

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

Если значение date.timezone Вы можете проверить, какое значение использует PHP с помощью date_default_timezone_get()

Давайте установим часовой пояс сервера на время UTC ( date.timezone = UTC Вам нужно будет перезапустить Apache или оболочку CLI, чтобы увидеть изменения.

PHP DateTime DateTimeZone При создании нового экземпляра DateTime DateTimeZone php.ini

Теперь вы можете видеть разницу во времени, когда двум объектам DateTime Например, вот пример, который конвертирует время из UTC в Америку / Нью-Йорк (EST).

Использование дат с MySQL и PHP

Если вы использовали MySQL на любом уровне, вы, вероятно, заметили тип DATETIME Это выглядит и пахнет как свидание, и если бы вы сказали, что это свидание, вы были бы правы. Но как только вы SELECT У него нет информации о часовом поясе, и он уже отформатирован для потребления человеком, прежде чем человеку когда-либо понадобится на него посмотреть

* Да, я знаю, что MySQL имеет множество функций форматирования даты, но мы уже имеем дело и с PHP, который, как вы видели, надрывается при работе с форматами даты. Зачем нам его форматировать прямо из базы данных? У нас может быть несколько разных преобразований и форматов, которые мы хотим применить к нему. Лучше форматировать дату только тогда, когда ее увидит человек.

Запустив этот простой скрипт, вы увидите, что все, что у вас есть из поля DATETIME

Значение DATETIME Если все, что вы когда-либо делаете, касается только одного сервера в одном часовом поясе, DATETIME

Итак, как вы справляетесь с датами и часовыми поясами с помощью PHP и MySQL? Храните даты как метки времени Unix.

Вы уже знаете, что время Unix — это количество секунд с 1 января 1970 года в UTC, так что это дает вам постоянный часовой пояс для работы, и, надеюсь, вы заметили, что многие функции даты / времени в PHP основаны на Unix метка времени.

При работе с MySQL я обычно создаю столбцы таблицы, в которых даты будут храниться как INTEGER UNSIGNED При вставке даты вы можете использовать либо time() UNIX_TIMESTAMP()

Если вы хотите, чтобы MySQL форматировал дату, вы можете. Но время будет находиться в часовом поясе сервера, и я предлагаю вам отложить любое форматирование, пока вы не достигнете уровня шаблона / представления в своем веб-приложении и не будете готовы к тому, чтобы его увидели человеческие глаза.

Вы можете легко преобразовать сохраненное время Unix (в UTC) в любую дату в часовом поясе конкретного пользователя.

Если бы мы изменили настройку часового пояса на America / Los_Angeles, получилась бы следующая дата:

И Америка / Нью-Йорк даст:

Резюме

Работа с датами и часовыми поясами является повседневной частью жизни многих программистов, но вам не о чем беспокоиться, если у вас есть надежные и простые в использовании библиотеки дат PHP для работы.

Вы видели, как легко получить метку времени Unix, как отформатировать дату в любой мыслимый формат, как проанализировать английское представление даты в метке времени, как добавить период времени в метку времени, и как конвертировать между часовыми поясами. Если у статьи есть два основных момента, которые следует отнять, они будут: 1) придерживаться времени Unix и 2) придерживаться UTC в качестве базового часового пояса для всех дат при работе с PHP и MySQL.

Идея все время основываться на UTC не относится только к PHP и MySQL; это считается хорошей практикой на любом языке. И если вы когда-нибудь обнаружите, что работаете на другом языке, есть большая вероятность, что вы скажете себе: «Черт возьми, почему они не могут сделать это как PHP?»

Источник

Хранение даты в mysql с учетом часового пояса

php сегодняшняя дата в формате mysql. Смотреть фото php сегодняшняя дата в формате mysql. Смотреть картинку php сегодняшняя дата в формате mysql. Картинка про php сегодняшняя дата в формате mysql. Фото php сегодняшняя дата в формате mysql
Статья о том, как избежать путаницы с датами, хранимыми в mysql.
Эти путаницы возникают по двум причинам:
1. Разные территории нашей планеты имеют разный сдвиг времени.
2. Некоторые страны переходят на летнее время и обратно(карта со странами, переходящими на летнее время).

Многие решают эти проблемы по-разному. Кто-то делает сдвиг даты в SQL запросах, кто-то в php. Кто-то хранит даты в TIMESTAMP, кто-то в DATETIME. Я переискал много источников, но нигде не нашел верного решения данной проблемы на русском. В родной документации по mysql нашел информацию о том, как добиться корректной автоматической конвертации TIMESTAMP в локальное время, но тут тоже свои подводные камни.

Если в php настройка временной зоны делается просто, в mysql возникают сложности, особенно, если доступ к mysql серверу вам ограничен и там еще не установлены некоторые таблицы.

Чем отличаются форматы хранения даты TIMESTAMP и DATETIME, я надеюсь вы знаете.
Значение TIMESTAMP является абсолютным значением времени, которое не зависит от локальных настроек. В любой стране, на любом компьютере оно одно и тоже. По-этому, в большинстве случаев лучше хранить дату именно в TIMESTAMP.

Если вы сделаете запрос
SELECT `timestamp_field` FROM table
вы получите дату в формете «гггг-мм-дд чч: мм: сс».
Казалось бы, все просто. И эта простота слишком соблазнительна и именно из за нее могут возникать проблемы, ведь нужно указать какая временная зона у пользователя, для которого достается дата.
И решение есть: можно задавать зону запросом

где ‘+03:00’ — это текущий сдвиг даты от лондонского нулевого времени.
Но после этого запроса mysql начинает неверно обрабатывать переход на летнее время.
Если значение time_zone установлено в SYSTEM (по умолчанию), переход на летнее время обрабатывается верно.
Например, сейчас лето и действует летнее время.
Нам нужно перевести в локальное время TIMESTAMP, хранимый в БД. Его значение — 946681261 (это ‘2000-01-01 01:01:01’ по Киевскому времени)
Делаем запрос:

SET time_zone = ‘SYSTEM’;
SELECT NOW(), FROM_UNIXTIME(946681261);

Получаем результат:

NOW()FROM_UNIXTIME(946681261)
2009-09-14 16:00:402000-01-01 01:01:01

Теперь изменим временную зону
SET time_zone = ‘+03:00’;
SELECT NOW(), FROM_UNIXTIME(946681261);

NOW()FROM_UNIXTIME(946681261)
2009-09-14 16:00:402000-01-01 02:01:01

Как видите, вместо ожидаемого ‘2000-01-01 01:01:01’ мы получили время на час больше. Тогда как текщее время отображается правильно.
Можно настроить mysql нужным образом (хорошо, если есть полный доступ к БД) и задавать временную зону в формате

SET time_zone = ‘America/Toronto’;

После этого может показаться, что все проблемы исчезнут. Но тут тоже могут быть сюрпризы.
Например, в 2007 году в США, Мексике и Канаде произошли некоторые изменения в правилах перехода на дневное время. А так как данные о временных зонах вносятся вручную в mysql, то вы должны следить за актуальностью данных. Хуже того: например, если вы используете язык PHP, вы должны следить за тем, что бы данные о временных зонах в mysql соответствовали данным в PHP — а это уже гораздо сложнее.

По крайней мере до 2038 года вы сможете быть уверены в том, что путаницы с датами нет.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *