mediaadventure
New member
Hallo,
ich habe folgendes Script modifiziert, damit auf einer Website immer als last update das heutige Datum minus 5 Tage erscheint. Das ganze klappt auch ganz gut, nur das am Monatsanfang, z. B. am 2. Februar nicht auf den 28.Januar zurückgeschaltet wird, sondern auf -3. Februar, was natürlich Quatsch ist. Kann mir jemand behilflich sein, dieses Problem zu lösen.
Vielen Dank im voraus.
Gruss, Klaus Z.
Hier das Script:
<script language="JavaScript">
today = new Date();
bYear = 1998; // Start Jahr
bMonth = 10; // Start Monat
bDay = 5; // Start Tag
tYear = today.getFullYear();
tMonth = (today.getMonth() ) + 1 ;
tDay = today.getDate()-2;
tHour = today.getHours();
fYear = 0;
fMonth = 0;
fDay = 0;
fHour = 0;
x = 0;
y = 0;
z = 0;
a = 0;
b = 0;
c = 0;
function testMonth() {
if (y==4 || y==6 || y==9 || y==11) x=30
else if (y==2) x=28
else x=31
}
function testDay() {
fDay = (z - bDay) + tDay;
if (fDay > a) {
fMonth += 1;
fDay = fDay - a;
}
}
y = bMonth;
testMonth();
z = x;
y = bMonth;
testMonth();
a = x;
if (bMonth <= tMonth) {
fYear = tYear - bYear;
fMonth = (tMonth - bMonth);
testDay();
}
fYear = (tYear - bYear) - 1
fMonth = ((12 - bMonth) + tMonth) - 1;
testDay();
if (fMonth >= 12) {
fYear += 1;
fMonth -= 12;
}
with(Math) {
theYear=fYear;
tensYear=floor(theYear/10);
onesYear=theYear-(tensYear*1);
theMonth=fMonth
tensMonth=floor(theMonth/10);
onesMonth=theMonth-(tensMonth*1);
theDay=fDay
tensDay=floor(theDay/10);
onesDay=theDay-(tensDay*1);
var testArray = new makeArray("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
for (z=1; z<=12; z++) {
if (tMonth==z) {
var b=testArray[z]
}
}
for (z=1; z<=12; z++) {
if (bMonth==z) {
var c=testArray[z]
}
}
}
var page
page = "last update: <b>"+tDay+". "+b+" "+tYear+"</b><br>"
if(parseInt(tensYear+onesYear) == 1) {
page += tensYear + onesYear + " Jahr</b>,<b> "
}
if(parseInt(tensYear+onesYear) == 0) {
page += ""
}
if(parseInt(tensMonth+onesMonth) == 1) {
page += tensMonth + onesMonth + " Monat </b>und<b> "
}
function makeArray() {
this.length = makeArray.arguments.length
for (var i = 0; i < this.length; i++)
this[i+1] = makeArray.arguments
}
//-->
</script>
ich habe folgendes Script modifiziert, damit auf einer Website immer als last update das heutige Datum minus 5 Tage erscheint. Das ganze klappt auch ganz gut, nur das am Monatsanfang, z. B. am 2. Februar nicht auf den 28.Januar zurückgeschaltet wird, sondern auf -3. Februar, was natürlich Quatsch ist. Kann mir jemand behilflich sein, dieses Problem zu lösen.
Vielen Dank im voraus.
Gruss, Klaus Z.
Hier das Script:
<script language="JavaScript">
today = new Date();
bYear = 1998; // Start Jahr
bMonth = 10; // Start Monat
bDay = 5; // Start Tag
tYear = today.getFullYear();
tMonth = (today.getMonth() ) + 1 ;
tDay = today.getDate()-2;
tHour = today.getHours();
fYear = 0;
fMonth = 0;
fDay = 0;
fHour = 0;
x = 0;
y = 0;
z = 0;
a = 0;
b = 0;
c = 0;
function testMonth() {
if (y==4 || y==6 || y==9 || y==11) x=30
else if (y==2) x=28
else x=31
}
function testDay() {
fDay = (z - bDay) + tDay;
if (fDay > a) {
fMonth += 1;
fDay = fDay - a;
}
}
y = bMonth;
testMonth();
z = x;
y = bMonth;
testMonth();
a = x;
if (bMonth <= tMonth) {
fYear = tYear - bYear;
fMonth = (tMonth - bMonth);
testDay();
}
fYear = (tYear - bYear) - 1
fMonth = ((12 - bMonth) + tMonth) - 1;
testDay();
if (fMonth >= 12) {
fYear += 1;
fMonth -= 12;
}
with(Math) {
theYear=fYear;
tensYear=floor(theYear/10);
onesYear=theYear-(tensYear*1);
theMonth=fMonth
tensMonth=floor(theMonth/10);
onesMonth=theMonth-(tensMonth*1);
theDay=fDay
tensDay=floor(theDay/10);
onesDay=theDay-(tensDay*1);
var testArray = new makeArray("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
for (z=1; z<=12; z++) {
if (tMonth==z) {
var b=testArray[z]
}
}
for (z=1; z<=12; z++) {
if (bMonth==z) {
var c=testArray[z]
}
}
}
var page
page = "last update: <b>"+tDay+". "+b+" "+tYear+"</b><br>"
if(parseInt(tensYear+onesYear) == 1) {
page += tensYear + onesYear + " Jahr</b>,<b> "
}
if(parseInt(tensYear+onesYear) == 0) {
page += ""
}
if(parseInt(tensMonth+onesMonth) == 1) {
page += tensMonth + onesMonth + " Monat </b>und<b> "
}
function makeArray() {
this.length = makeArray.arguments.length
for (var i = 0; i < this.length; i++)
this[i+1] = makeArray.arguments
}
//-->
</script>