2011-06-05 55 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