我上个月使用以下内容以不同的格式在以后使用它们。
<?
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月? (脚本在8月份运行。)
编辑:php版本为5.4
答案 0 :(得分:1)
使用DateTime:
<?php
$dt = new DateTime('first day of last month');
echo $dt->format('F');
?>
答案 1 :(得分: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
答案 2 :(得分:0)
尝试在php.ini
中设置php中的时区您可以在Time Zone in PHP
中查看php文档中的时区