1
我讀從數據庫中圖書館開放時間,所以我得到返回類似:如何訂購週日(0)包括部分周的週日?
{
"5":{ // library ID
"4":{ // interval ID
"statement":"",
"start_date":"5th Jan 2015",
"end_date":"1st Mar 2015",
"hours":[
{
"day_of_week":"Sun",
"opening_time":"12am",
"closing_time":"12am",
"is_closed":true,
"open_24hrs":false
},
{
"day_of_week":"Mon",
"opening_time":"9am",
"closing_time":"5pm",
"is_closed":false,
"open_24hrs":false
},
{
"day_of_week":"Tue",
"opening_time":"9am",
"closing_time":"5pm",
"is_closed":false,
"open_24hrs":false
},
每個「正規」的開放時間與同爲每個「變異」,其中的間隔可以是任何東西從一天到七天。 (這裏我已經預處理了日期數字以縮短日期名稱)。我通過AJAX/PHP從PostGreSQL獲取數據。我的問題是,如果時間間隔可能是從一天到幾周的任何時間(但一週或一週以上的時間間隔僅存儲一個小時),我該如何正確排定變化的日期,並且可以從任何一天開始,例如:星期五,星期六,星期日,星期一長週末(在這種情況下,日數是5,6,0,1,因此按照週日,週一,週五,週六排序)?
我最初的想法是:
- 檢查間隔了整整一個星期
- 如果不是,請檢查是否星期天走過
- 如果不是,容易被數訂購
- 如果週日遍歷,獲得開始日期並訂購直至星期日然後 重置爲0(用於星期天)並且繼續到開始之前的最高數字 天
但我想知道這是否全是矯枉過正,我可以使用order by子句或類似的方法來完成相同的工作,例如:Possible to create a query that sorts by day of week? ?
任何想法非常讚賞。
但是,這不是要給我一樣長週末例子的結果嗎? IE瀏覽器。 0,1,5,6 - 星期日,星期一,星期五,星期六 –
啊,我明白你的意思了。在這種情況下,無法知道哪些'hours.day_of_week'應該是間隔的第一個日期,而不必將每個'hours.day_of_week'轉換回日曆日期。你能夠改變模式來設計這個問題嗎? –
嗨丹尼爾,將每個dow轉換爲日曆日期的問題意味着即使間隔時間爲幾個星期(如暑假),我也必須在每個間隔中存儲每個日期的記錄。雖然回想一下模式可能是個好主意 - 也許是每個小時記錄的「訂單」字段?例如。 day_num:0,1,5,6/dow:Sun,Mon,Fri,Sat/order:3,4,1,2 –