1

これが問題です。現在、「時間の可用性」機能をプログラミングしています。

例: 日曜日: 午前 7:00 から午後 9:30 月曜日: 午前 8:00 から午後 10:00 火曜日: 午前 7:30 から午後 8:30 など...

アイデアは、ビジネスが一般公開される時間範囲をユーザーが指定できるというものです。特定の曜日番号は関係ありません。現在が 3 日の月曜日か 10 日の月曜日かは関係ありません。「月曜日」に指定された時間範囲はすべての月曜日に適用されます。各時間範囲の開始時刻と終了時刻は、時間フィールド (1 ~ 12)、分フィールド (0 ~ 59)、および期間 (午前または午後) フィールドとして保存されます。これは私の国に固有のものであり、ここでは 24 時間制ではなく AM/PM を使用しているため、このようにする必要があります。もちろん、ここでは時間と分について話しているだけであり、特定の完全な日付ではないため、この場合はタイムゾーンを適用しません。

ただし、他の場所では、現在の日付 (特定の完全な日時) を取得し、その日付に特定のタイムゾーン (正確には「アメリカ/パナマ」) を適用し、その日付を分離する JavaScript コードが必要です。そのコンポーネントに分解します (タイムゾーンに応じて、曜日、曜日、時間、分、および期間 (午前または午後) に個別の値が必要です)。これは、曜日に従って現在の日付が指定された時間範囲内にあるかどうかを評価するためです (最後の段落で説明したように)。

はい、日付は内部的に「ユニバーサル」なものであり、タイムゾーンはおそらく「ユーザーに文字列を表示するために適用するもの」であることを知っています。前にそれを見た。しかし、ご覧のとおり、ここではそうではありません。何か案は?

編集:申し訳ありませんが、明確にするのを忘れました: ソリューションは、サードパーティのスクリプトなしで実行する必要があります。つまり、純粋な「普通の」JavaScript が必要です。

4

4 に答える 4

0
于 2013-01-08T01:55:42.343 に答える
0

このすべての情報を取得するには、moment.jsなどのライブラリを使用できるはずです。

于 2013-01-08T01:29:24.573 に答える
0

したがって、現在のが必要ですDate

var now = new Date();

タイムゾーンごとに変更する必要があります:

now.setHours(now.getHours() + timezone);

他の値を取得します。

var dayOfWeek = now.getDay();
var dayOfMonth = now.getDate();
var hour = now.getHours() % 12;
var minute = now.getMinutes;
var period = now.getHourse < 12 ? 0:1; //0 is AM, 1 is PM

それはあなたが探しているものですか?

于 2013-01-08T01:41:45.523 に答える
0

パナマには夏時間がないため、年間を通じて UTC に 5 時間を追加できます。

var d = new Date();
console.log("Date is now:"+d.toString());
var utc=new Date(d.getTime()+(d.getTimezoneOffset()*60000));
// or utc=d;utc.setHours(utc.getHours()+(utc.getTimezoneOffset()/60))
// note that UTC does not represent correct milliseconds from epoch for UTC now
//  it has the UTC values for getHours
//  if current locale has daylight saving JavaScript will give the correct
//  timezoneoffset
console.log("UTC date is now:"+utc.toString());
//http://www.timeanddate.com/worldclock/city.html?n=192
// panama has no daylight saving and is UTC -5 all year round
// 18000000 is 5*60*60*1000 (5 hours in milliseconds)
panama = new Date(utc.getTime()+(18000000));
//or panama=utc;panama.setHours(panama.getHours()+5);
console.log(panama.toString());
于 2013-01-08T03:05:58.197 に答える