2009-06-10 2 views
2

私は世界中の何百というユーザーにレポートを送るcronジョブに取り組んでいます。 cronは、自分のタイムゾーンに応じて、午前12時に全ユーザに電子メールを送信する必要があります。あなたがどこにいる時間が何であるかを現在どの午前12時にどのタイムゾーンが決定されていますか?

time("O"); 

図アウト:

time("H:i") 

はあなたが追加する必要があるかどうか動作するようにいくつかの魔法を行い、あなたがしているタイムゾーンどのような事前のおかげで

答えて

2
Your Time | Timezone You Need 
----------------------------- 
12:00am  0 
1:00am  -1 
2:00am  -2 
3:00am  -3 
4:00am  -4 
5:00am  -5 
... 
12:00pm  +/- 12 
1:00pm  +11 
2:00pm  +10 
3:00pm  +9 
... 
------------------------------ 

あなたはパターンを見ることができるはずですが、ここでの開発を開始し、「カトマンズ」のタイムゾーン内のすべてのユーザーにメールを送信。パターンは、タイムゾーンの差=(現在の12時間)のようになります。

+1

15分、30分、45分のオフセットを使用するすべての場所も忘れないでください – Glen

+0

ありがとうございました。私はずっと混乱している数学の仕事の代わりに思う。私は、タイムゾーンの毎時の各タイムゾーンのステートメントをif codeだけハードコードします。 – drikoda

+0

グッドポイントグレン。とdrikoda、私は実際にすべてのハードコードを入れなければならないことを主張していませんでしたが、大規模で徹底的なリストやデータベースのテーブル(私はやったように1時間の代わりに15分増分にそれを壊す)、しかしそれがあなた自身を殺すことを望んでいないあなたがそれを行うための最良の方法であるならば、そうすること。 – TheTXI

0

図アウト時間を差し引いて真夜中に達したら、時間と午前の時間差を加算または減算してタイムゾーンの差を求め、それを自分のタイムゾーンに追加します。 Voila。

編集:「魔法」のを参照してください@ TheTXIの答えは、あなたはすべてのユーザーは、彼らが夏時間を使用したりしていないかどうか+であり、どのタイムゾーンのリストが必要

3

を関与。タイムゾーンの完全なリストについては

あなたはcronのは、現在のオフセットのタイムゾーン内のすべてのユーザーにスクリプトを実行している必要があり、このwikipedia article

その後15分ごとを参照してください。

UTC + 5時45分で

+0

+1カトマンズのユーザーを探してください! –

+0

カトマンズだけでなく、テヘランは+3:30、オーストラリアのアデレードとダーウィンは+9:30、デリーとムンバイは+5:30です。基本的には、タイムゾーンは通常15分単位で行われます。また、基本的には、タイムゾーン処理が嫌です! – Glen

+0

うん、私は、昨年、自分のタイムゾーンをdiktatでランダムに変更することを決めた国や他のリーダーを覚えているようだ - その変更がタイムゾーンを気にする人々によってどの程度真剣に受け止められたのかわからない!言い換えれば、私は、タイムゾーンが15分の境界になければならないと言っているところは分かりません。 –

関連する問題