0

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

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

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

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

你的帮助总是值得赞赏的。

4

3 回答 3

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 秒)。

于 2013-06-08T20:55:02.463 回答
1

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

$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
于 2013-06-08T20:39:25.467 回答
1

像这样的东西应该工作:

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

如果您不熟悉它,您应该查看 PHP SPL 日期/时间类。它们非常有用,并且使这类事情变得非常容易。

于 2013-06-08T20:56:35.100 回答