471,054 Members | 1,651 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,054 software developers and data experts.

make a time script shorter

I used the following script for a site to stop displaying after a date /
time, but it seems huge. Any ideas on how to make it shorter? There are
many events in this list.
function events() {

var today = new Date();
var dayarray=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
var montharray=new
Array("Jan","Feb","Mar","Apr","May","Jun","Jul","A ug","Sep","Oct","Nov","Dec
")
document.write('<table>');
var event = "Spirit of the Dance - 8:00 pm (<a
href=ticketorderform_spiritofthedance.html>Order Tickets</a>)";
var date = new Date("October 30, 2003");
date.setHours (23);
date.setMinutes (21);
date.setSeconds (59);
var year=date.getYear()
if (year < 1000)
year+=1900
var day=date.getDay()
var month=date.getMonth()
var daym=date.getDate()
var cdate=dayarray[day]+", "+montharray[month]+" "+daym+" "+year+" "
if (today.getTime() <= date.getTime()) {
document.write('<tr><td valign=top>');
document.write(cdate);
document.write('</td><td>- ');
document.write(event);
document.write('</td></tr>');
}
document.write('</table>');

}
Jul 20 '05 #1
1 4101
JRS: In article <ac******************************@news.teranews.co m>,
seen in news:comp.lang.javascript, Treetop <tr*****@netfront.net> posted
at Fri, 3 Oct 2003 16:42:30 :-
I used the following script for a site to stop displaying after a date /
time, but it seems huge. Any ideas on how to make it shorter? There are
many events in this list.
function events() {

var today = new Date();
var dayarray=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat") var dayarray=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"] var montharray=new
Array("Jan","Feb","Mar","Apr","May","Jun","Jul"," Aug","Sep","Oct","Nov","Dec
")
document.write('<table>');
var event = "Spirit of the Dance - 8:00 pm (<a
href=ticketorderform_spiritofthedance.html>Orde r Tickets</a>)";
var date = new Date("October 30, 2003");
date.setHours (23);
date.setMinutes (21);
date.setSeconds (59);
var date = new Date(2003,9,30,23,21,59)
var date = new Date("2003/10/31") // near enough ?
var date = new Date("2003/10/30 23:21:59")
var year=date.getYear()
if (year < 1000)
year+=1900
var year = 1900 + date.getYear()%1900 // < AD 3800
var day=date.getDay()
var month=date.getMonth()
var daym=date.getDate()
var cdate=dayarray[day]+", "+montharray[month]+" "+daym+" "+year+" "
if (today.getTime() <= date.getTime()) {
document.write('<tr><td valign=top>');
document.write(cdate);
document.write('</td><td>- ');
document.write(event);
document.write('</td></tr>');
}
if (today <= date) with (date)
document.write('<tr><tc valign=top>, dayarray[getDay()], ', ',
montharray[getMonth()], ' ', getDate(), ' ',
1900 + date.getYear()%1900, '<\/td><td>- ', event, '<\/td><\/tr>')

document.write('</table>');

}


After testing, then shorten variable names.

For World-Wide Web use, M D Y is silly; use Y M D. Consider LZ, or
equivalent, to add leading zero to getDate().

There is no point in calculating anything that will not get used; test
the date earlier.

To shorten repetitive work, use a function with parameters. For
example, function WriteTable(Evnt, Till) ; today, dayarray,
montharray can be global. If the Evnt always has a similar URL,
parameterise the variable part of that, too :-

WT("Spirit of the Dance - 8:00 pm",
"spiritofthedance", "2003/10/30 23:21:59")

Then you can, for a slight gain on a long schedule, supply those as
elements of an array :

var Data = [
["Spirit of the Dance - 8:00 pm",
"spiritofthedance", "2003/10/30 23:21:59"],
["Mozart - 15:30", "wam", "2003/12/31 11:45"], ... ... ]

Read the FAQ, thoughtfully.

Note that the event occurs at a specific time and location; you want to
prevent ticket ordering at that absolute time or a fixed offset from
that, independently of the orderer's location. The chronologically
retarded, such as Alaskans, should not be able to take undue advantage;
the advanced Maoris should not be handicapped.

It is still possible, I think, to be using a computer
in the VIP lounge at LHR, and to arrive in or near NYC
at an earlier local time.

NOTE to all, prompted by above :

<URL:http://www.merlyn.demon.co.uk/js-date5.htm#DDTA> is much changed;
it could do with a functionality test on later browsers, a correctness
check, and any suggestions for reasonable code reduction. I think the
page displays all relevant code, except imports.

--
John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4
<URL:http://jibbering.com/faq/> Jim Ley's FAQ for news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> JS maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/JS/&c., FAQ topics, links.
Jul 20 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

16 posts views Thread by Krakatioison | last post: by
8 posts views Thread by jasonbrown1999 | last post: by
4 posts views Thread by Spencer | last post: by
7 posts views Thread by Lowell Kirsh | last post: by
6 posts views Thread by scottyman | last post: by
6 posts views Thread by AlGorr | last post: by
3 posts views Thread by skanemupp | last post: by
reply views Thread by leo001 | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.