2017-03-28 12 views
0

私はこの同じページ(私はフォームで隠し<input>を使用して)でPHPの投稿を使用して送信する2つの日付(データの選択から)があります。PHPの日付とPOSIXの日付

$(function(){ 
    flatpickr('#calendar',{ 
     mode: "range", 
     onChange: function(dates) { 
      if(dates.length>1){ 
       $("#formdate .from").val(+dates[0]/1000); 
       $("#formdate .to").val((+dates[1])/1000); 
       $("#formdate").submit(); 
      } 
     } 
    }); 
}); 

これらの日付は、例えば14905692002017-03-27 00:00:00で、POSIXの日付です。

私は1000で分けることがわかります。それは私がMySQLで使用するので、secondにあり、millisecondには入っていない必要があるからです。

enter image description here

私は、有効なこの第二の日付(ここでは26日)は、それが上記の関数を呼び出して、ページを更新:

は、ここに私の日時ピッカーです。 POSIXの日付をエコーすると、私は次のようになります:

1488326400, 1490486400それぞれ3月1日と26日(通常の動作)です。今、私は読みやすい形式でそれらを変換するためにPHPで次の関数を使用します。

echo date('l jS \of F Y',$from); 
echo date('l jS \of F Y',$to); 

それは次のように私が表示されます。

Wednesday 1st of March 2017 
Sunday 26th of March 2017 

だからここまで、すべてが正常に動作します!

しかし、私は同じか月の27日上記の日付を拾う場合は、今、ここでそれが起こる何だ:

enter image description here

私はPOSIXの日付のエコーを行います 1490313600, 1490655600それぞれ24日と28日(問題ありません)。

しかし、私は読みやすいフォーマットのためのPHPの日付を使用する場合:

確か
echo date('l jS \of F Y',$from); 
echo date('l jS \of F Y',$to); 

Friday 24th of March 2017 
Monday 27th of March 2017 

、私は同じか27日の上に選択したすべての日付が前日のように表示されます。

同じ問題をecho date('l jS \of F Y',1490655600)とすれば、私には27番目と28番目が与えられません。

どういうところが間違っていますか?

+0

_「何が間違っていますか?」_誰かが冬/夏の時間について聞いたことがありません。 – CBroe

+0

ああああ...なぜそれが動作していなかったのか理解しようと数時間を費やしていて、それは単純なものでした... PHPでこれをどう対処するのか知っていますか? – Will

+0

あなたのPHPコードのようなサウンドは、その週末の冬の時間から夏の時間への移行を尊重していません(日曜日26日02:00 AMは03:00になります)。一方、あなたのJavascriptコード**は**考慮する。あなたの日付フォーマットに時間と分を追加すると、3月27日00:00の日付は3月26日23:00と表示されますか? **編集**誰かが私にそれを打つ:-) – rickdenhaan

答えて

0

コメントによると、これは冬/夏の時間によるものです。

関連する問題