2017-09-16 10 views
-1

Azureでは多くのPHPファイルが正常に動作しています。私は最近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を期待 Hで与えられるarameter、0:5行目の\ WWW \ eeandroid \ androidwebservice \ getDateFromServer.php \ルート\ホーム\のlazimsoftware-001 {:10、 "日付": "オフセット" "1505538926"}

これは一つのケースですが、他にもあります。私はここで解決策を見つけることを願っています。ありがとう。

+2

PHPコードがどうしてうまくいかないかわかりません。 'gmdate'関数は、' $ format'文字列引数を期待しています。 – ficuscr

+1

一方のサーバーにエラーと警告が表示され、他方のサーバーが動作しているように見える場合があります。 – Andreas

答えて

2

したがって、関数gmdateには、文字列引数の$formatが必要です。いつも、dateと同じです。

文字列gmdate(文字列$フォーマット[、int型$タイムスタンプ=時間()])

私が思うに変更唯一のことは、あなたがそれを常に放出された警告を観察しているということです。新しいサーバーでエラーレベルや何かが変更されたとします。

{"offset":10,"date":"1505541601"}のようなコードは返されますが、date_createに渡すものは意図したものではありません。 $dateは実際にはブール値falseです。

+0

SmarterASPはちょうどその仕事をしていますか? – Nithin

+0

[すべてのエラーをログに記録](https://stackoverflow.com/questions/3531703/how-to-log-errors-and-warnings-into-a-file)と警告は、このような問題について大きな洞察を提供します。作品 "しかし、おそらく期待どおり。プロダクションでログに記録し、dev/localに表示します。警告は、あなたがそのコードを修正し、 'gmdate'関数が使用するフォーマットを設定する必要があると言います。 SmarterASPについて聞いたことがありません。 – ficuscr

関連する問題