0

「通知」の表がありますが、24時間以内に送信される場合と送信されない場合があります。各通知には、からの独自のタイムゾーンオフセットがGMTあるため、秒単位で+/-になるオフセットの列があります。

送信された通知についてデータベースを定期的にチェックするPHPスクリプトを作成し、(via cron)その日の00:00を過ぎた場合は未送信にリセットする必要があります。私はこれを行うための最良の方法に本当に苦労しています-私が行うことができる簡単な計算はありますか?

mktime()[私のサーバーはGMTです]を使用してサーバーの深夜のUNIX時間を取得し、秒単位のオフセットで処理することについて考えていましたが、私が考えるすべての方法が間違っているようです。

何かのようなもの:

if(!mktime()-$notifcationTimezone > $serverMidnight){}

これが機能しないと言っているわけではありませんが、サーバーが別の日に経過しても機能するとは思いません。それは私を混乱させるだけであり、私はそれを信じていません。

4

1 に答える 1

0

これはstrtotimeとの単純な比較ではなく、オフセットを合計する必要もありません。日付関数を使用して、比較に使用するstrtotimeに渡す特定の時刻を設定できます。

より良いアイデアを提供するために、データベースからの実際の例と、現在のcronの外観を示してください。

ここで何を引っ張ろうとしているのか完全にはわかりませんが、あなたが考えたいのは、本当に何かをリセットしたいのか、それが必要なのかということです。通知が送信された日付を入力できます。今日の日付と一致しない場合は、再送信しますか?

于 2010-12-05T18:53:58.933 に答える