删除时间戳的时间部分

时间:2011-07-13 15:33:25

标签: php datetime timestamp

如何删除时间戳的时间部分?

例如,将1310571061转为1310565600这是明确的日期时间戳。

7 个答案:

答案 0 :(得分:27)

strtotime(date("Y-m-d", 1310571061));

那应该为你做。

答案 1 :(得分:27)

如果你想要一个数学解决方案:

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

24小时内有86,400秒(这是典型日的长度,但不是全部......请参阅夏令时)。由于我们的时间戳是UTC,这应该不是问题。您可以将其除以一天中的秒数,删除剩余部分,然后再乘以。

答案 2 :(得分:9)

使用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对象将大大减少混乱和错误,尤其是在时区问题和夏令时之间。的问题。

答案 3 :(得分:4)

尝试:

<?php
$ts = '1310571061';

echo strtotime(date('Y-m-d 00:00:00', $ts));
?>

答案 4 :(得分:3)

$pubdate='2003-02-19T00:00:00.000-05:00';

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

答案如下:“2003-02-19”

谢谢

答案 5 :(得分:1)

你可以这样做:

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

答案 6 :(得分:1)

这是我通常要做的:

your_timestamp = pd.to_datetime(your_timestamp.strftime(format="%x"))

函数strftimeyour_timestamp转换为没有时间成分的字符串。然后函数pd.to_datetime会将其转换回Timestamp,而没有时间分量。