Updated answer to my own question.
I have updated my own code with a more robust one.
// JavaScript Document
var today = new Date;
var Event0 = new Date;
Event0.setDate(1);
Event0.setMonth(0); // January = 0
Event0.setFullYear(2011);
var Event1 = new Date;
Event1.setDate(1);
Event1.setMonth(1); // January = 0
Event1.setFullYear(2011);
var Event2 = new Date;
Event2.setDate(1);
Event2.setMonth(2); // January = 0
Event2.setFullYear(2011);
var Event3 = new Date;
Event3.setDate(1);
Event3.setMonth(3); // January = 0
Event3.setFullYear(2011);
var Event999 = new Date;
Event999.setDate(1);
Event999.setMonth(0); // Janu开发者_如何学Cary = 0
Event999.setFullYear(2012);
var ev = "<strong>Error\ !<\/strong><br\/>Could not find Event Feed"
var ev0 = "<strong>Error\ !<\/strong><br\/>Please check your computers date settings<br\/>Year set before 2011"
var ev1 = "Event 1"
var ev2 = "Event 2"
var ev3 = "Event 3"
var ev999 = "<strong>Error\ !<\/strong><br\/>Please check your computers date settings<br\/>Year set after 2012"
if (today <= Event0) var ev = ev0
if (today >= Event1) var ev = ev1
if (today >= Event2) var ev = ev2
if (today >= Event3) var ev = ev3
if (today >= Event999) var ev = ev999
-- OLD QUESTION --
I am trying to have the following code set an output.
- If Event1 date is = to or greater then today's date display ev1.
- If Event2 date is = to or greater then today's date stop displaying ev1 and show ev2
- If Event3 date is = to or greater then today's date stop displaying ev2 and show ev3
Q: Is there a better way of doing this or is my code OK to produce the outcome I am looking for. I am new to JavaScript so I hope I have done this right.
--- code in ext JS file ---
<script type="text/javascript">
var today = new Date;
var Event1 = new Date;
Event1.setDate(1);
Event1.setMonth(0); // January = 0
Event1.setFullYear(2011);
var Event2 = new Date;
Event2.setDate(1);
Event2.setMonth(1); // January = 0
Event2.setFullYear(2011);
var Event3 = new Date;
Event3.setDate(1);
Event3.setMonth(2); // January = 0
Event3.setFullYear(2011);
var ev1 = "Event 1 at location A"
var ev2 = "Event 2 at location B"
var ev3 = "Event 3 at location C"
if (today >= Event1) var ev = ev1
if (today >= Event2) var ev = ev2
if (today >= Event3) var ev = ev3
</script>
--- code on page ---
<script language="JavaScript"><!--
document.write(ev);
//-->
</script>
Thank you in advance
Your code works, but i am not sure if simple modification of your code is what you are looking for?
var today = new Date();
var Event1 = new Date(2011, 0, 1); //Jan 1, 2011
var Event2 = new Date(2011, 1, 1); //Feb 1, 2011
var Event3 = new Date(2011, 2, 1); //March 1, 2011
var ev = "No Event Found";
if(today >= Event3)
ev = "Event 3 at location C";
else if(today >= Event2)
ev = "Event 2 at location B";
else if(today >= Event1)
ev = "Event 1 at location A";
document.write(ev);
If I understand correctly you are trying to print the name of current month. Try this:
<script type="text/javascript">
var Months =
[
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec"
];
var today = new Date;
</script>
<script language="JavaScript"><!--
document.write(Months[today.getMonth()]);
</script>
P.S: In your code you are defining variable ev in the if block. Please note that ev will be defined in the if block scope and hence will be unavailable outside the if block. You need to define it outside if block to assign it in if block and access it outside if.
Your code works, here are some pointers though. Hard to give you more help when the intention of your code is not clear.
var today = new Date();
// Easier way to set year, month, day
var events = [ new Date(2011, 0, 1), new Date(2011, 1, 1), new Date(2011, 2, 1)];
// Will contains all the events that are after today
var afterToday = [];
for (var i=0; i < events.length; i++) {
// Greater than works to compare dates because it calls the date's valueOf(),
// which calls getTime()
if (today > events[i]) {
afterToday.push(events[i]);
}
}
for (var i=0; i < afterToday.length; i++) {
alert("Today is before " + afterToday[i]);
}
// To check if there were any events after today
if (afterToday.length == 0) {
alert('No events after today');
}
精彩评论