簡體   English   中英

PHP date()和strtotime()在cron上返回錯誤的月份

[英]PHP date() and strtotime() return wrong months on cron

我正在使用以下內容以不同的格式獲取上個月的信息,以便以后使用。

<?
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可以打印出十二月嗎? (腳本在八月運行)。

編輯:php版本是5.4

為此使用DateTime:

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

實際觀看

問題仍然沒有為我解決,但這可能會對其他人有所幫助。 問題是cron出於某種原因使用5.2.17,而網站的其余部分使用的是5.4。

感謝Langdi指出這可能是原因。 主機仍然無法找到問題的根源,一旦發現任何問題,我將在這里更新。

---更新,也許將來對任何人都有幫助:

這是我的房東的答復,我認為它可以解決問題:

您帳戶的cron作業全部以php開頭(它將在您使用的任何環境中運行默認的php)

的PHP /路徑/ 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

嘗試在php.ini中的php中設置時區

您可以檢查有關PHP文檔這里時區在PHP中時區

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM