2011-06-05 31 views
1


我想翻譯一天的「名稱」中的出生日期,就像星期一,星期二等,但我有一些懷疑如何做到這一點,我首先想到:拿兩個時間戳(出生日期和當前時間戳),然後使用像%7這樣的「模數」,然後用模數的「休息」查看一組名稱。但是,實際上,時間戳並不意味着被模數除,不是嗎?你會怎麼做?翻譯時間戳出生日期 - 以當天的名義

由於

回答

0

如果有一個真正的Date對象時,可以結合平日的陣列使用它的方法getDay()。幾個月也是如此。這裏是今年返回格式化的實際生日,出生原來一天,這一天的生日功能:

function birthDAY(dat){ 
    var result = {}, 
     birthday = new Date(dat), 
     weekdays = 'sun,mon,tue,wedness,thurs,fri,satur'.split(','), 
     months = 'jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec'.split(','), 
     dateFormatted = function(dateobj) { 
     return [ 
       weekdays[dateobj.getDay()],'day', 
       ', ', months[dateobj.getMonth()], 
       ' ', dateobj.getDate(), 
       ' ', dateobj.getFullYear() 
       ].join(''); 
     }; 

    result.bdformatted = dateFormatted(birthday); 
    result.origbd = weekdays[birthday.getDay()]+'day'; 

    birthday.setFullYear(new Date().getFullYear()); 
    result.bdthisyear = weekdays[birthday.getDay()]+'day'); 
    return result; 
} 
//usage 
var bdObj = birthDAY('1973/11/02'); // <- your timestamp here 
alert(bdObj.bdformatted); //=> friday, nov 2 1973 
alert(bdObj.origbd);  //=> friday 
alert(bdObj.bdthisyear); //=> wednessday 
+0

謝謝!所以:與第一個答案相比,爲什麼在這裏使用「dat」上的getDay,即「1973/11/02」,而不是先將它傳遞給新的Date()?另外,這裏:dateFormatted =函數dayBD(dat),爲什麼以及如何將name命名爲dayBD,如果您已經將其命名爲dateFormatted作爲變量函數,那麼爲什麼?感謝您的幫助;)和完整的答案! – Paul 2011-06-06 00:59:37

+0

@Paul:對於混淆抱歉。在第二個答案中,'dateFormatted'被定義爲一個本地函數,接收一個參數'dat',這是令人困惑的,因爲該函數的參數也被命名爲'dat'。函數的名稱並不重要,它也可以是匿名函數。我已經編輯了相應的答案 – KooiInc 2011-06-06 11:09:56

+0

不錯,謝謝,我現在明白了;)感謝您的評論! – Paul 2011-06-07 00:29:06

1

可以使用valueOf()功能,你可以使用模,但你可以嘗試使用獲得UNIX時間戳更簡單的API來獲取日期的日期名稱。我已經以時間戳的形式記錄了1983年4月14日的實際出生日期。我從實際的DOB獲取每月日期值和月份值。我使用月份日期和月份值以及當前年份值構造另一個日期對象。然後從此日期獲取每週的星期值(0-6 = Sun-Sat),並顯示陣列中包含日期名稱的映射日期名稱。

var days = "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday"; 
var actualDOB = "04/14/1983"; 

var date = new Date(new Date().getFullYear(), new Date(actualDOB).getMonth(), new Date(actualDOB).getDate()); 

alert("The day of the week this year for your birthday is : " + days.split(',')[date.getDay()] + " (" + date.toDateString() + ")"); 

希望這會有所幫助。

+0

謝謝!我不知道得到... smthg,謝謝你的回答! ;) – Paul 2011-06-06 01:00:36

+0

@Paul:謝謝!樂於幫助 – sudipto 2011-06-06 02:48:02