Удалить временную часть временной метки - PullRequest
17 голосов
/ 13 июля 2011

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

Так, например, поверните 1310571061 на 1310565600, что является простой датой времени.

Ответы [ 6 ]

27 голосов
/ 13 июля 2011

Если вам нужно математическое решение:

$time=1310571061;
echo floor($time/86400)*86400;

В течение 24 часов 86 400 секунд (что является продолжительностью типичного дня, но не всех ... см. DST). Поскольку наши временные метки в UTC, это не должно быть проблемой. Вы можете разделить это на количество секунд в дне, отбросить остаток и умножить обратно.

27 голосов
/ 13 июля 2011
strtotime(date("Y-m-d", 1310571061));

Это должно сделать это для вас.

9 голосов
/ 13 августа 2015

Использование объекта DateTime может быть полезным, а также может сделать код более читабельным ...

$dt = new DateTime();
$dt->setTimestamp(1310571061);
echo $dt->format('Y-m-d, H:i:s') . "\r\n";
$dt->setTime(0, 0, 0);
echo $dt->format('Y-m-d, H:i:s');

Результат ...

2011-07-14, 03: 31: 01

2011-07-14, 00: 00: 00

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

4 голосов
/ 13 июля 2011

Попробуйте:

<?php
$ts = '1310571061';

echo strtotime(date('Y-m-d 00:00:00', $ts));
?>
3 голосов
/ 11 июля 2016
$pubdate='2003-02-19T00:00:00.000-05:00';

   $da = strtotime($pubdate);
   echo $dat = date('Y-m-d', $da);

Ответ такой: "2003-02-19"

Спасибо

1 голос
/ 13 июля 2011

Вы можете сделать:

$date = strotime(date("y/m/d", $timestamp));   
...