Solved

Need help fixing code so the input field named startdt's time is local computer's time zone

Posted on 2007-03-19
12
236 Views
Last Modified: 2013-11-18
Hello,
One of the gurus on this site wrote this code...
<td align="center">Start Date
            <input maxLength="29" id="startdt" name="startdt" size="19" value=""/>
          </td>
          <td align="center">End Date
            <input maxLength="29" id="enddt" name="enddt" size="19" value=""/>
           </td>
          <td align="center">
  <INPUT type="button" name="add" value="Add">
  <xsl:attribute name="onclick">
<![CDATA[ if(document.form1.startdt.value == ''){ var curdate = new Date(); var dstring1 = curdate.toLocaleString(); var darray = dstring1.split(',');  
document.form1.startdt.value = darray[1] + darray[2];} if(document.form1.enddt.value == '')
{ document.form1.enddt.value = 'March 31 2010 10:00:00 AM';}  if((document.form1.order.value == '') ||  (document.form1.order[0].value == ''))
{ if(document.form1.order.length == undefined)  
{ document.form1.order.value = '1'; }
else { document.form1.order[0].value = ']]>
<xsl:value-of select="$users + 1"/>
<![CDATA['; }}  if(doSubmit) { document.form1.submit(); } ]]>
      </xsl:attribute>
  </INPUT>
          </td>
The time is off by one hour. I thought it was the hosting company.
Any ideas how to fix the time on the startdt so it is an hour later (Eastern Standard Time) or whatever the local computer's time zone is? (I think it needs one of these functions toGMTString()
toUTCString())

0
Comment
Question by:TrueBlue
  • 7
  • 4
12 Comments
 
LVL 5

Expert Comment

by:Oscurochu
ID: 18753615
javascript is never because of the host. javascript is a CLIENTside script. everything is obtained from the user viewing the webpage. so the time displayed in javascript is representing the time on your pc. if it isn't then your script is simply not correct.
0
 
LVL 9

Expert Comment

by:owenli27
ID: 18753736
Agree with Oscurochu.   You cannot get hosting server current time by using JavaScript.  You surely can use UTC time by changing code to:

<td align="center">Start Date
      <input maxLength="29" id="startdt" name="startdt" size="19" value=""/>
</td>
<td align="center">End Date
      <input maxLength="29" id="enddt" name="enddt" size="19" value=""/>
</td>
<td align="center">
  <INPUT type="button" name="add" value="Add">
      <xsl:attribute name="onclick"><![CDATA[ if(document.form1.startdt.value == ''){ var curdate = new Date(); var dstring1 = curdate.toUTCString(); var darray = dstring1.split(',');  document.form1.startdt.value = darray[1];} if(document.form1.enddt.value == ''){ document.form1.enddt.value = '31 Oct 2008 23:00:00 UTC';}  if((document.form1.order.value == '') ||  (document.form1.order[0].value == '')) { if(document.form1.order.length == undefined)  { document.form1.order.value = '1'; } else { document.form1.order[0].value = ']]> <xsl:value-of select="$users + 1"/><![CDATA['; }}  if(doSubmit) { document.form1.submit(); } ]]>
      </xsl:attribute>
  </INPUT>
 </td>
0
 
LVL 9

Expert Comment

by:owenli27
ID: 18753755
But the date/time format will be changed to '31 Oct 2008 23:00:00 UTC'.  If you want to keep the original format, I can rewrite JavaScript to do formating. It is pretty simple.
0
 

Author Comment

by:TrueBlue
ID: 18753875
Owen,
It would be great if you could rewrite the Javascript to get the original format as I am having to send this information to a third party webservice.
TIA
0
 
LVL 9

Expert Comment

by:owenli27
ID: 18753938
No problem.  I will do it  tomorrow early morning.  It is 11:25 PM here now.  
Actually, I got an idea to get the hosting server current time if it always be 5 hours different from GMC.
0
 

Author Comment

by:TrueBlue
ID: 18755407
Owen,
I am pretty sure that the hosting company's server is EST.
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 9

Expert Comment

by:owenli27
ID: 18756057
It should be 4 hours difference between EST and UST. So, try this code:

<td align="center">Start Date
      <input maxLength="29" id="startdt" name="startdt" size="19" value=""/>
</td>
<td align="center">End Date
      <input maxLength="29" id="enddt" name="enddt" size="19" value=""/>
</td>
<td align="center">
  <INPUT type="button" name="add" value="Add">
      <xsl:attribute name="onclick"><![CDATA[ if(document.form1.startdt.value == ''){ var curdate = new Date(); var hostdate = new Date(curdate.getTime()+(curdate.getTimezoneOffset()*60*1000)-(4*60*60*1000)); var dstring1 = hostdate.toLocaleString(); var darray = dstring1.split(',');  document.form1.startdt.value = darray[1] + darray[2];} if(document.form1.enddt.value == ''){ document.form1.enddt.value = 'March 31 2010 10:00:00 AM';}  if((document.form1.order.value == '') ||  (document.form1.order[0].value == '')) { if(document.form1.order.length == undefined)  { document.form1.order.value = '1'; } else { document.form1.order[0].value = ']]> <xsl:value-of select="$users + 1"/><![CDATA['; }}  if(doSubmit) { document.form1.submit(); } ]]>
      </xsl:attribute>
  </INPUT>
</td>
0
 

Author Comment

by:TrueBlue
ID: 18756194
Owen,
It has the correct time :)
Is there a way to do a substring or something of the month's name so that it would only be the first three letters, for example instead of March it would be Mar (the rest of the format is fine)?
TIA
0
 
LVL 9

Expert Comment

by:owenli27
ID: 18756786
try this way: (If you don't want to display Seconds in time, I can remove it easily)

<td align="center">Start Date
      <input maxLength="29" id="startdt" name="startdt" size="19" value=""/>
</td>
<td align="center">End Date
      <input maxLength="29" id="enddt" name="enddt" size="19" value=""/>
</td>
<td align="center">
  <INPUT type="button" name="add" value="Add">
      <xsl:attribute name="onclick"><![CDATA[ if(document.form1.startdt.value == ''){var monNames = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); var curdate = new Date(); var d = new Date(curdate.getTime()+(curdate.getTimezoneOffset()*60*1000)-(4*60*60*1000)); document.form1.startdt.value = monNames[d.getMonth()] + ' ' + d.getDay() + ' ' + d.getFullYear() + ' ' + ((h = d.getHours() % 12) ? h : 12) + ':' +  d.getMinutes() + ':' + d.getSeconds() + ' ' + (d.getHours() < 12 ? 'AM' : 'PM');}
    if(document.form1.enddt.value == ''){ document.form1.enddt.value = 'Mar 31 2010 10:00:00 AM';}  if((document.form1.order.value == '') ||  (document.form1.order[0].value == '')) { if(document.form1.order.length == undefined)  { document.form1.order.value = '1'; } else { document.form1.order[0].value = ']]> <xsl:value-of select="$users + 1"/><![CDATA['; }}  if(doSubmit) { document.form1.submit(); } ]]>
      </xsl:attribute>
  </INPUT>
</td>
0
 

Author Comment

by:TrueBlue
ID: 18757609
Owen,
I just tried it and got Mar 2 2007 12:26:20 PM for the startdt.
The only problem I see is the second digit is missing from the day of the month.
Any ideas?
TIA
0
 
LVL 9

Accepted Solution

by:
owenli27 earned 400 total points
ID: 18758015
Sorry, it was my mistake. Please change d.getDay()  to d.getDate()

getDay()  - Returns the day of the week from a Date object
getDate() - Returns the day of the month from a Date object
0
 
LVL 9

Expert Comment

by:owenli27
ID: 18758030
By the way,  You don't have to add points for asking any questions in one same question.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

I will show you how to create a ASP.NET Captcha control without using any HTTP HANDELRS or what so ever. you can easily plug it into your web pages. For Example a = 2 + 3 (where 2 and 3 are 2 random numbers) Session("Answer") = 5 then we…
Introduction Since I wrote the original article about Handling Date and Time in PHP and MySQL (http://www.experts-exchange.com/articles/201/Handling-Date-and-Time-in-PHP-and-MySQL.html) several years ago, it seemed like now was a good time to updat…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn the benefit of using external CSS files and the relationship between class and ID selectors. Create your external css file by saving it as style.css then set up your style tags: (CODE) Reference the nav tag and set your prop…

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now