2012-05-08 50 views
0

我正在爲豪華轎車服務製作網站,該服務應提供您事先請求的服務的價格。使用javascript細分和隔離時間

常規服務是1美元一分鐘。但是,從午夜到上午8點的所有時間都被視爲保費,收費爲2美元。

現在,這裏是複雜的部分。我需要隔離客戶在正常時間和保費上支付多少時間,以便產生價格。

例如。如果服務時間從晚上9點到凌晨2點,客戶將以1美元/分鐘的價格支付3小時,以2美元/分鐘的價格支付2小時。

如何獲得9pm和2am,並轉換爲180分鐘+ 120分鐘?

順便說一下,我綁並篡改http://code.google.com/p/datejs/。但它只是沒有工作。有這樣一個聰明的「數學」方式嗎?

感謝您的幫助球員:)

+0

用戶當前如何選擇他們希望預訂的時間?如果你只是使用一系列24小時格式的select元素,這應該是相對簡單的... – BenM

+0

@BenM我有一個佔位符的形式,而我建立的邏輯(它只是文本框)。一個伴侶會做外表。但是,你能詳細闡述一系列選擇元素如何提供幫助嗎? – PCoelho

回答

0

所以保費的時間都在上午它似乎和非全部在P.M.所以只需減去他們給出的任何時間,從12開始,在你的例子12-9中,你得到3小時,然後爲0加上任意小時數,再例如0 + 2,當然是2小時。然後乘以60來獲得分鐘數。一旦你有這個時間每個金額的數額收取它們並將它們加在一起。我希望am/pm是一個切換,將每個變量設置爲true/false。

代碼可能是這個樣子:

//start_time and end_time are objects that have 2 properties, am/pm 
//which is a bool and time which is a int 
function calc_time(start_time,end_time){ 
    var normal_pay; 
    var premium_pay; 
    if(start_time.pm == true){ 
    normal_pay = 12 - start_time.time; 
    normal_pay = normal_pay * 60; 
    } else{ 
    normal_pay = 0 + start_time.time; 
    normal_pay = normal_pay * 60 * 2; //this is premium time the whole night was premium pay 
    } 

    if(end_time.am == true){ 
    premium_pay = 0 + end_time.time; 
    premium_pay = premium_pay * 60 * 2; 
    } else { 
    premium_pay = 12 - end_time.time; 
    premium_pay = premium_pay * 60; //this is normal time the whole night was normal pay 
    } 

    return premium_pay + normal_pay; 
} 

這不會解決你還是要考慮的東西像分鐘的一切,說他們想要3:25時至結束但是這並不難。