如何从MySQL时间戳数据类型的日期中减去一天?

时间:2013-06-08 20:25:12

标签: php mysql wordpress date timestamp

在我的Worpdress站点中,我使用函数current time以MySQL时间戳数据类型格式返回当前日期。

我的目标是对结果进行一些操作(比如减去1天)。我在网上找到date_sub,但要求是其参数应为DateTime类型。

  

警告:date_sub()期望参数1为DateTime,字符串在第107行的C:\ xampp \ htdocs \ blog \ wp-content \ themes \ twentyten \ header.php中给出

如何对MySQL时间戳数据类型格式执行减法,或者是否存在以DataTime格式返回当前日期的Worpdress函数?

总是感谢你的帮助。

3 个答案:

答案 0 :(得分:1)

PHP日期函数可以以您想要的任何格式返回日期。

$datetime = date('Y-m-d H:i:s', time() - (1 * 86400));

这将在unix中产生一些时间并且需要一天时间。 如果作为第二个参数日期函数输入,它将以该格式转换。

$a_day_ago = time() - (1 * 86400);

http://php.net/manual/en/function.date.php

如果您希望直接在MySQL中执行此操作。

日期和时间:

NOW() - INTERVAL 1 DAY

刚出日期:

CURDATE() - INTERVAL 1 DAY

答案 1 :(得分:1)

我认为你正在寻找:

<?php
function longdate($timestamp)
{
return date("l F jS Y", $timestamp);
}
?>

如果您需要在17天前打印出日期,那么现在就是 必须发出以下电话:

echo longdate(time() - 17 * 24 * 60 * 60);

传递给longdate当前的Unix时间戳减去自之后的秒数 17天前(17天×24小时×60分钟×60秒)。

答案 2 :(得分:1)

这样的事情应该有效:

$date = new DateTime();
$date->sub(new DateInterval("P1D"));
echo $date->format("Y-m-d H:i:s");

如果您不熟悉它,您应该查看PHP SPL日期/时间类。它们非常有用,使这种类型的东西变得非常容易。