2017-09-16 87 views
-1

我有很多PHP文件在Azure中正常工作。我最近將它們轉移到了SmarterASP(使用相同的數據庫,並正確連接),然後一些相同的文件顯示警告和輸出,並導致客戶端出現問題。這裏是其中的一個文件:在不同服務器上顯示警告的PHP代碼工作

<?php 
$userTimeZone=$_GET['timezone']; 
$offset=10; 
$result['offset']=$offset; 
$date=gmdate(); 
$date=date_create($date, new DateTimeZone("GMT")) 
->setTimezone(new DateTimeZone($userTimeZone))->format("U"); 
$result['date']=$date; 
echo json_encode($result); 
?> 

我得到在Azure上正確的輸出,提供正確的輸入(?timezone=Asia/Kolkata):

{ 「偏移」:10, 「日期」: 「1505538838」}

但在SmarterASP,對於相同的輸入,我得到這個:

警告:gmdate()預計至少1個p arameter,0在 H中給出:\根\家\ lazimsoftware-001 \ WWW \ eeandroid \ androidwebservice \ getDateFromServer.php 第5行{ 「偏移」:10, 「日期」: 「1505538926」}

這是一種情況,也有其他情況。希望我在這裏找到解決方案。謝謝。

+2

不知道如何PHP代碼將永遠不會工作。 'gmdate'函數需要'$ format'字符串參數。 – ficuscr

+1

如果一臺服務器出現錯誤和警告,另一臺服務器似乎可以正常工作。 – Andreas

回答

2

所以,函數gmdate需要$format字符串參數。總是有,就像date

串gmdate(字符串$格式[摘要$時間戳=時間()])

,改變了我覺得是,你正在觀察它一直髮出警告的唯一的事。假設您的錯誤級別或新服務器上發生了變化。

你的代碼確實返回類似{"offset":10,"date":"1505541601"}的東西,但是你傳遞給date_create的東西並不是你想要的。 $date實際上是布爾假。

+0

所以SmarterASP只是做正確的工作? – Nithin

+0

[記錄所有錯誤](https://stackoverflow.com/questions/3531703/how-to-log-errors-and-warnings-into-a-file)和警告提供了很好的洞察這樣的問題,你的代碼「作品「,但可能不如預期。將它們記錄在生產環境中,並將它們顯示在dev/local中。警告說您需要修復該代碼並設置要使用的'gmdate'函數的格式。從來沒有聽說過smarterASP。 – ficuscr

相關問題