Как разделить дату от времени?

Рейтинг: 0Ответов: 1Опубликовано: 16.01.2015

Имеется unixtimestamp (например: 1421279818 = 14.01.2015 23:56:58 UTC).
Нужно произвести изменения с временем, не трогая дату.

Алгоритмически так, например:

'14.01.2015' + ('23:56:58' * 20) и получить новые дату и время.

При умножении переполнение времени перейдёт в дополнительные дни ответа. Если умножаем всё значение, естественно, ответ неверен, т.к. получается:

'14.01.2015 23:56:58' * 20

Переводим время в секунды и умножаем:

86218 * 20 = 1724360 = 19Д 22:59:20

Потом берем дату:

1421279818 - 86218 = 1421193600

Прибавляем результат:

1421193600 + 1724360 = 1422917960

Получаем 02.02.2015 22:59:20

Вопрос в следующем: есть ли для таких вычислений что-то стандартное в Delphi либо Php или нужно своё изобретать?

В Delphi можно перевести, например, в DateTime, там разделить на составляющие, потом по отдельности их суммировать и следить за переполнениями дней/месяцев/лет, учитывать високосный год и прочее...

Проще, наверное, так и работать с unixtimestamp?

Ответы

▲ 1

А зачем менять само данное? Можешь просто представить, как тебе нужно с помощью функции Date().

Здесь все про эту функцию расписано: http://php.net/manual/ru/function.date.php

Вот так, например, можно отобразить только лишь дату (без времени):

Date ('d/m/Y',timestamp);