перевести отметку времени рождения - в названии дня - PullRequest
1 голос
/ 05 июня 2011


я пытаюсь перевести дату рождения в «имя» дня, например, понедельник, вторник и т. д., но у меня есть некоторые сомнения относительно того, как это сделать, подумал я сначала: возьмите две метки времени (дату рождения и текущую дату). отметка времени), а затем используйте «по модулю», как% 7, затем с «остатком» по модулю, просматривая массив имен. Но на самом деле, метка времени не предназначена для деления по модулю, не так ли? как бы вы сделали?

Спасибо

Ответы [ 2 ]

1 голос
/ 05 июня 2011

Вы можете получить метку времени UNIX, используя функцию valueOf(), где вы можете использовать модуль, но вы можете попробовать использовать более простой API для получения названия дня из даты. Я взял фактическую дату рождения, скажем, 14 апреля 1983 года в формате отметки времени. Я получаю месячные значения даты и месяца из фактического 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 голосов
/ 05 июня 2011

Если у вас есть реальный объект 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
...