2013-07-24 85 views
0

我想知道做這件事的最好方法是什麼。我想要有一個預計的交貨時間腳本,在我的網頁上的HTML中:2從今天獲取天數JQuery

2號碼將每頁更改,但這將是天交貨花費,現在我想另一個div的內容以顯示從今天的日期[ammount]:星期五26日

得到div的等將是容易的,但我不知道什麼樣的功能,我可以用來獲得日期倒計時。任何幫助非常感謝,謝謝。

+0

請看任何javascript Date()教程或參考。這確實是一件基本的事情。 http://www.w3schools.com/jsref/jsref_obj_date.asp –

+4

請不要引用w3schools.com:http://www.w3fools.com/ – BenM

+0

@BenM +1引用w3fools – gustavohenke

回答

3

這是一個非常簡單的過程,爲日期添加日期。這裏有一個簡單的片斷:

// Get the current date 
var now = new Date(); 
// Add three days 
now.setDate(now.getDate() + 3); 
// Log the updated Date object to the console 
console.log(now); //= Sat Jul 27 2013 16:00:00 GMT+0200 (W. Europe Daylight Time) 

我以爲這件事很有意思,所以我冒昧地創造更先進的腳本,需要的工作時間,週末和特殊日期(即假期)因素:

// Current date/time 
var now = new Date(); 
// Placeholder for delivery time 
var deliveryDate; 
// Amount of days to deliver 
var deliveryDays = 2; 
// Working hours (in UTC) 
var workingHours = [8, 17]; 

// Non-delivery days/dates 
// Must match the format returned by .toString(): 
// Mon Sep 28 1998 14:36:22 GMT-0700 (Pacific Daylight Time) 
var nonDelivery = [ 
    "Sun", 
    "Sat", 
    "Dec 24", 
    "Dec 25", 
    "Dec 31", 
    "Jan 1" 
]; 

// Create a regular expression 
var rxp = new RegExp(nonDelivery.join("|")); 

// addDay holds the amount of days to add to delivery date 
var addDay = deliveryDays; 

// Add an extra day if outside of working hours 
var currentHour = now.getUTCHours(); 
if (currentHour < workingHours[0] || 
    currentHour > workingHours[1]) { 
    addDay++; 
} 

// Let's create our delivery date 
while (!deliveryDate) { 
    // Add day(s) to delivery date 
    now.setDate(
     now.getDate() + addDay 
    ); 
    deliveryDate = now; 
    if (rxp.test(deliveryDate)) { 
     addDay = 1; 
     deliveryDate = false; 
    } 
} 

// Function to get ordinal 
function nth(d) { 
    if (d > 3 && d < 21) return 'th'; 
    switch (d % 10) { 
     case 1: return "st"; 
     case 2: return "nd"; 
     case 3: return "rd"; 
     default: return "th"; 
    } 
} 

// Now lets format 
var locale = "en-GB"; // Our locale 
var day = deliveryDate.toLocaleDateString(locale, { day: "numeric" }); 
var weekday = deliveryDate.toLocaleDateString(locale, { weekday: "long" }); 

// Log the results to the console 
console.log(weekday + " " + day + nth(day)); 
+1

太棒了!非常簡單,確實謝謝,將在6分鐘內接受答案:) –

+0

@SimonStaton請注意,這將增加24小時。你會想要更高級的東西,需要考慮週末甚至假期。 – mekwall

+0

是的,我也在想,我會環顧四周,但至少這是一個起點,是否有可能將'現在'轉換爲像「7月26日星期五」這樣的日期? –