smares323
asked on
Javascript Server date(); Not new date();
I want to use server date not the new date(); in this script
var oneHour = 60 * 60, // 60 seconds * 60 minutes dynamic variable
twentyMins = 20 * 60, // 20 minutes * 60 seconds
thirtyMins = 30 * 60, // 20 minutes * 60 seconds
oneMin = 60, // 60 seconds
fiveSecs = 5,
when = new Date(2014,2,18,8,32,0), // change to the date and time you want to show - months start at 0
timeToShow=thirtyMins
link = '<input type="button" value="Get free MCLE Credit" name="MCLE" onclick=\'window.open("ind ex.cfm","_ self")\' />';
window.onload = function () {
var then = new Date(when.getTime());
then.setMinutes(then.getMi nutes()+30 );
var d = new Date();
if (d.getTime() >= when.getTime() && d.getTime() <then.getTime()) {
document.getElementById('b tnappear') .innerHTML =link;
countDown('btnappear', '', timeToShow);
}
}
function countDown(elID, output, seconds) {
var mins,
secs = seconds,
pad = function (n) {
return n > 9 ? n : '0' + n;
};
// get the hours by dividing by the number of seconds in an hour
hours = Math.floor(secs / 3600); // 60 * 60 = 3600
// get the remaining seconds
secs %= 3600;
// likewise, get the number of minutes of by dividing the remaining seconds by 60
mins = Math.floor(secs / 60);
// again, get the remainder of seconds
secs %= 60;
// pad any numbers less than 9 with a leading 0
secs = pad(secs);
mins = pad(mins);
hours = pad(hours);
document.getElementById(el ID).innerH TML = (seconds === 0) ? output : 'Time link is still active: ' + hours + ':' + mins + ':' + secs +'<br/>'+link;
// instead of returning, just don't call setTimout if we are done
if (seconds !== 0) {
seconds -= 1;
// there is no need to pass a string to setTimout, you just pass the function name,
// followed by the timeout in ms, followed by any params
//setTimeout(countDown, 1000, elID, output, seconds);
setTimeout("countDown('" + elID + "', '" + output + "', " + (seconds) + ")", 1000);
}
}
var oneHour = 60 * 60, // 60 seconds * 60 minutes dynamic variable
twentyMins = 20 * 60, // 20 minutes * 60 seconds
thirtyMins = 30 * 60, // 20 minutes * 60 seconds
oneMin = 60, // 60 seconds
fiveSecs = 5,
when = new Date(2014,2,18,8,32,0), // change to the date and time you want to show - months start at 0
timeToShow=thirtyMins
link = '<input type="button" value="Get free MCLE Credit" name="MCLE" onclick=\'window.open("ind
window.onload = function () {
var then = new Date(when.getTime());
then.setMinutes(then.getMi
var d = new Date();
if (d.getTime() >= when.getTime() && d.getTime() <then.getTime()) {
document.getElementById('b
countDown('btnappear', '', timeToShow);
}
}
function countDown(elID, output, seconds) {
var mins,
secs = seconds,
pad = function (n) {
return n > 9 ? n : '0' + n;
};
// get the hours by dividing by the number of seconds in an hour
hours = Math.floor(secs / 3600); // 60 * 60 = 3600
// get the remaining seconds
secs %= 3600;
// likewise, get the number of minutes of by dividing the remaining seconds by 60
mins = Math.floor(secs / 60);
// again, get the remainder of seconds
secs %= 60;
// pad any numbers less than 9 with a leading 0
secs = pad(secs);
mins = pad(mins);
hours = pad(hours);
document.getElementById(el
// instead of returning, just don't call setTimout if we are done
if (seconds !== 0) {
seconds -= 1;
// there is no need to pass a string to setTimout, you just pass the function name,
// followed by the timeout in ms, followed by any params
//setTimeout(countDown, 1000, elID, output, seconds);
setTimeout("countDown('" + elID + "', '" + output + "', " + (seconds) + ")", 1000);
}
}
ASKER
That's true client side I noticed that when I was testing the clients clock was set to a different time and the button did not appear on time that it was set. Can I some how use a Server date time I'm running ColdFusion.
change
var d = new Date();
to
var d = new date('<cfoutput>#Now()#</c foutput>') ;
var d = new Date();
to
var d = new date('<cfoutput>#Now()#</c
ASKER
#Now()# is outputting this format {ts '2014-04-17 13:15:37'} and javascript is throwing out an error.
im not a cold fusion guy, but doing a quick search looks like this should work (assuming you just want the date):
var d = new date( '<cfoutput>#dateformat(now (),"dddd, mmmm dd, yyyy")#</cfoutput>' );
var d = new date( '<cfoutput>#dateformat(now
ASKER
I wrote the following code bellow but the script does not like the value from var d, even do it's formatted exactly like the new date(); value. the button does not pop up. only pops up with new date(); My problem is that someone my have the wrong time set on there computer and never see the pop up button.
var cd = "#dateformat(now(),'mm/dd/ yyyy')# #TimeFormat(now(),'HH:mm:s s')#";
var jd = cd.split(/\D/);
var d = new Date( jd[2], jd[0]*1-1, jd[1], jd[3], jd[4], jd[5] );
var cd = "#dateformat(now(),'mm/dd/
var jd = cd.split(/\D/);
var d = new Date( jd[2], jd[0]*1-1, jd[1], jd[3], jd[4], jd[5] );
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
great advice
To get the date of the server, you would most likely want to use a server side language such as asp.net, php, etc.