0
私はこれに数日間執着しており、JavaScriptの日付はかなり混乱しています。 2時間以上先で2ヶ月以上先のJSONとフィルタオブジェクトを繰り返し処理する必要があります。ここJavascriptの日付をアレイ内のオブジェクトにフィルタする方法を教えてください。
は、JSONの例である:
[
{
"Email":"[email protected]",
"TimeSlotsDate":"2017-01-28",
"TimeSlotsAvailable":[
{
"start":"11:00",
"end":"12:00"
},
{
"start":"12:00",
"end":"13:00"
},
{
"start":"13:00",
"end":"14:00"
},
{
"start":"15:00",
"end":"16:00"
},
{
"start":"16:00",
"end":"17:00"
},
{
"start":"17:00",
"end":"18:00"
}
],
},
{
"Email":"[email protected]",
"TimeSlotsDate":"2017-02-01",
"TimeSlotsAvailable":[
{
"start":"12:00",
"end":"13:00"
},
{
"start":"13:00",
"end":"14:00"
},
{
"start":"14:00",
"end":"15:00"
},
{
"start":"15:00",
"end":"16:00"
},
{
"start":"16:00",
"end":"17:00"
},
{
"start":"17:00",
"end":"18:00"
}
],
}]
私はJSONから使用可能な日付を作成しますが、私は、私はあまりありTimeSlotsAvailable
配列からオブジェクトを削除する部分で立ち往生しています機能を書かれています前述のように2時間前と2ヶ月以上先行している。ここ
関数である:
var filterTimeslots = function (_timeSlots) {
var result = [];
var currentDate = new Date();
var timeZoneOffset = currentDate.getTimezoneOffset()/60;
for (var i in _timeSlots) {
var day = _timeSlots[i].TimeSlotsDate.substring(8, 10);
var month = _timeSlots[i].TimeSlotsDate.substring(5, 7);
var year = _timeSlots[i].TimeSlotsDate.substring(0, 4);
for (var x in _timeSlots[i].TimeSlotsAvailable) {
var timeSlotStrt = _timeSlots[i].TimeSlotsAvailable[x].start.substring(0, 2);
var timeZoneTime = parseInt(timeSlotStrt) - timeZoneOffset;
var timeSlotDate = new Date(year, month, day, timeZoneTime);
if (timeSlotDate < currentDate) {
//the timeslot is less than 2 hours away
}
if (timeSlotDate > currentDate) {
//the timeslot is more than 2 months ahead
}
return result;
}
}
};
機能が無効なタイムスロットを排除濾過配列を返さなければなりません。
ご協力いただければ幸いです。
簡単なはずの瞬間を使用して – jcubic