1

我上个月使用以下内容以不同的格式获取,以便以后使用。

<?
date("m", strtotime("first day of -1 month"));
strtolower(date("M", strtotime("first day of -1 month")));
date("F", strtotime("first day of -1 month"));
?>

这应该在 cron 上运行并将它们打印到外部文件。当我手动运行它时,它就像一个魅力,它会打印出正确的月份(七月)。但是,cronjob 打印出 12 月?(脚本在八月运行)。

编辑:php版本是5.4

4

3 回答 3

1

为此使用日期时间:

<?php
$dt = new DateTime('first day of last month');
echo $dt->format('F');
?>

看到它在行动

于 2013-08-13T15:30:41.420 回答
1

问题仍然没有为我解决,但这可能对其他人有帮助。问题是 cron 出于某种原因使用 5.2.17,而网站的其余部分则使用 5.4。

感谢 Langdi 指出这可能是原因。楼主还是找不到问题的根源,有什么我会在这里更新。

---更新,也许它对将来的任何人都有帮助:

以下是楼主的回复,我觉得可以解决问题:

您帐户上的 cron 作业都以 php 开头(在您使用的任何环境中运行默认 php)

php /path/script.php

问题是 php 版本是由 htaccess 设置的(在 cron 环境中不活动),因此您需要使用不同的命令在此处选择 php 5.4。解释器的完整路径。

/usr/php/54/usr/bin/php

如果您还需要 cron 帐户中的 php.ini,您可以添加 -c 然后是该 php.ini 的路径

-c /path/public_html/php.ini

所以在 cron 中使用的命令是:

/usr/php/54/usr/bin/php -c /path/public_html/php.ini /path/public_html/script.php

于 2013-08-15T19:41:32.410 回答
0

尝试在 php.ini 中的 php 中设置时区

您可以在此处查看 php 文档中的时区 PHP 中的时区

于 2013-08-13T16:24:47.693 回答