Редакция:
ЭТА ЧАСТЬ — ТО, ЧТО МНЕ НУЖНО РЕШИТЬ:
У меня есть отрицательное целое число, например: -10800, и я хочу преобразовать его по местному времени, а именно в Буэнос-Айресе (gmt -3).
Я использую онлайн-конвертер, чтобы проверить, какая это дата, чтобы я мог проверить результаты: www.4webhelp.net, и он выдает, что -10800 это среда, 31 декабря 1969 года, 18:00:00 (GMT -3), но я считаю, что это не правильно. Мне сказали, что отрицательное число находится в моем часовом поясе, который является Буэнос-Айресом.
Я также хочу создавать из даты в строку, используя тот же формат времени. Как я могу это сделать?
ЭТА ЧАСТЬ РЕШЕНА:
Среди вещей, которые я попробовал, чтобы сделать это, возникло новое сомнение при изучении mktime:
Я пытался узнать, какой последний день февраля:
$lastday = mktime(0, 0, 0, 2, 0, 2015);
echo strftime("Last day is: %d", $lastday);
И это бросает, что у февраля есть 31 день, который является неправильным. Почему это так?
Если день 0
тогда PHP принимает последний день предыдущего месяца, так
$lastday = mktime(0, 0, 0, 2, 0, 2015);
Дает 31 январь 2015
(0-й день месяца 2, эффективно)
В соответствии с PHP документы
день
Номер дня относительно конца предыдущего месяца. Значения с 1 по 28, 29, 30 или 31 (в зависимости от месяца) относятся к обычным дням в соответствующем месяце. Значения меньше 1 (включая отрицательные значения) относятся к дням в предыдущем месяце, поэтому 0 — последний день предыдущего месяца, -1 — день до этого и т. Д. Значения больше, чем количество дней в соответствующем месяце. соответствующий день в следующем месяце (ах).
(мой акцент)
РЕДАКТИРОВАТЬ
Если вы хотите последний день февраля, используйте
$lastday = mktime(0, 0, 0, 2, 1, 2015);
echo 'Last day is: ', date("t", $lastday);
Других решений пока нет …