I am trying to find a script that will change text based on a date range.
My product changes on the 8th and 23nd of each month. For example on the 23rd of August I would like the text to say "Now enrolling for September 15, October 1 and October 15th" The text would change on September 8th to "Now enrolling for October 1, October 15 and November 15th"
I would like this to roll throughout the year.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
<style type="text/css">
</style>
</head>
<body>
<p id="msg"></p>
<script type="text/javascript">
// To test a date with the year, javascript month (0-11), day and hours (at nome)
var tdy=new Date(2012,7,10,12);
// The datas are to remove ( var tdy=new Date(); ) to work with the date of the day
// To write the months
var mnt="January,February,March,April,May,June,July,August,September,October,November,December".split(',');
var frsDte,scdDte,thrDte;
if (tdy.getDate()<8) {
frsDte=mnt[tdy.getMonth()]+' 15th';
scdDte=mnt[tdy.getMonth()+1]+' 1st';
thrDte=mnt[tdy.getMonth()+1]+' 15th';
}
else if (tdy.getDate()<23) {
frsDte=mnt[tdy.getMonth()+1]+' 1st';
scdDte=mnt[tdy.getMonth()+1]+' 15th';
thrDte=mnt[tdy.getMonth()+2]+' 1st';
}
else {
frsDte=mnt[tdy.getMonth()+1]+' 15th';
scdDte=mnt[tdy.getMonth()+2]+' 1st';
thrDte=mnt[tdy.getMonth()+2]+' 15th';
}
document.getElementById('msg').innerHTML="Now enrolling for "+frsDte+", "+scdDte+" and "+thrDte;
</script>
</body>
</html>
But, attention on the limits: the shown dates are local on the client browser !
I forgott a modulo 12 to retrieve the first months at the end of year !
Code:
<script type="text/javascript">
// To test a date with the year, javascript month (0-11), day and hours (at nome)
var tdy=new Date(2012,11,16,12);
// The datas are to remove ( var tdy=new Date(); ) to work with the date of the day
// To write the months
var mnt="January,February,March,April,May,June,July,August,September,October,November,December".split(',');
var frsDte,scdDte,thrDte,dte=tdy.getDate(),crrMnt=tdy.getMonth(),frsMnt,scdMnt;
if (dte<8) {frsMnt=crrMnt;scdMnt=(crrMnt+1)%12;
frsDte=mnt[frsMnt]+' 15th';
scdDte=mnt[scdMnt]+' 1st';
thrDte=mnt[scdMnt]+' 15th';
}
else if (dte<23) {frsMnt=(crrMnt+1)%12;scdMnt=(crrMnt+2)%12;
frsDte=mnt[frsMnt]+' 1st';
scdDte=mnt[frsMnt]+' 15th';
thrDte=mnt[scdMnt]+' 1st';
}
else {frsMnt=(crrMnt+1)%12;scdMnt=(crrMnt+2)%12;
frsDte=mnt[frsMnt]+' 15th';
scdDte=mnt[scdMnt]+' 1st';
thrDte=mnt[scdMnt]+' 15th';
}
document.getElementById('msg').innerHTML="Now enrolling for "+frsDte+", "+scdDte+" and "+thrDte;
</script>
It would be also possible to add 7 days in the date before looking for the first or fifteenth day of the month
Bookmarks