Verjaardags script
Gebruikers kunnen hun verjaardag zelf toevoegen.
Op de site zou je dan kunnen zien wie die dag jarig is en wie de komende 7 dagen. Tliefst zonder gebruik van MySQL
Je moet dan bij iedere bezoeker een .txt inlezen, per regel in een array. Dan per item kijken naar de datum en dat vervolgens displayen.
Je zou het met een cronjob 1x per dag kunnen doen. Maar eigenlijk zou ik het advies geven om hier niet aan te beginnen zonder database.
Dit werkt met interne array. Ma tzou moeten werken zodat gebruikers via een formulier ofzo hun namen zlef in de array kunnen steken.
<script type="text/javascript">
Date.prototype.getDiff = function(date, interval){
if (typeof date == "string"){
date = new Date(date);
}
if (isNaN(date) || !(date instanceof Date)){
return NaN; //invalid date passed
}
if (typeof interval == "undefined") interval = "ms"; //msec (default)
var diff = this - date; //alert(this+' - '+date+" = "+diff)//diff in msec
switch(interval.toLowerCase()){
case "s": //sec
diff = diff/1000; break;
case "n": //min
diff = diff/(1000*60); break;
case "h": //hr
diff = diff/(1000*60*60); break;
case "d": //day
diff = diff/(1000*60*60*24); break;
case "m": //month
diff = diff/(1000*60*60*24*30); break;
case "y": //year
diff = diff/(1000*60*60*24*365); break;
default:
; //msec
}
return Math.floor(diff);
}
var arrBday = [
['Bob', '8/30/1973'],
['Glenn', '9/5/1989'],
['Nathan', '8/5/1999'],
['Peter', '8/18/1977'],
['John', '8/19/1999']
];
function getBdayList(numDays){
var bday,temp,idx,diff;
var today = new Date();
var bdayList = new Array();
for (var i=0;i<arrBday.length;i++){
bday = new Date(arrBday[1]);
if (isNaN(bday)) continue;
temp = new Date(today.getFullYear(), bday.getMonth(), bday.getDate(), 23, 59, 59, 999);
diff = temp.getDiff(today, "d");
if (diff >= 0 && diff <= numDays){
idx = bdayList.length;
bdayList[idx] = new Object();
bdayList[idx].name = arrBday[0];
bdayList[idx].bday = arrBday[1];
bdayList[idx].age = today.getDiff(bday, "y");
if (diff > 0) bdayList[idx].age = bdayList[idx].age + 1;
bdayList[idx].today = (diff == 0) ? true : false;
bdayList[idx].site = arrBday[2];
}
}
return bdayList;
}
function displayBdayList(){
var bdayList = getBdayList(14);
var len = bdayList.length;
var s1 = ""; //today's bday list
var s2 = ""; //next 2 week's bday list
if (len>0){
for (var i=0; i<len; i++){
if (bdayList.today){
if (s1 != ""){
s1 += ', ' + bdayList.name + ' (' + bdayList.age + ')';
}
else{
s1 = '<span class="header">Vandaag <img src=http://users.skynet.be/fa393819/happybday.gif>:<br></span> ' + bdayList.name + ' (' + bdayList.age + ')';
}
}
else{
if (s2 != ""){
s2 += ', ' + bdayList.name + ' - ' + bdayList.bday + ' (' + bdayList.age + ')';
}
else{
s2 = '<span class="header">Komende 14 dagen verjaren:<br></span> ' + bdayList.name + ' - ' + bdayList.bday + ' (' + bdayList.age + ')';
}
}
}
}
else{
s1 = "Geen jarigen de<br>komende 14 dagen.";
}
document.write('<div>' + s1 + '</div><div>' + s2 + '</div>');
}
</script>
en in de body:
<script type="text/javascript">
displayBdayList();
</script>
personal reminder, als je dat een beetje ombouwt, zou het wel moeten lukken...
Kijk eens bij