Kevin Smith
asked on
How do I seperate date from time in appointment file sent from asp?
I have a code (attached) that sends an appointment...I need to know how to make it show the start time and end time properly. Right now it's adding an all day time the day before.
As you can see from the code, it pulls the date from the form field, but I need to have it seperate it from the time (another field). How do I do that?
Thanks!
Kevin
As you can see from the code, it pulls the date from the form field, but I need to have it seperate it from the time (another field). How do I do that?
Thanks!
Kevin
Dim fso, file, filename, tmpName, startDate, endDate, uniqueID
Dim yourEmail, smtpServer
yourEmail = "me@company.com"
smtpServer = "mail.company.com"
Set fso = Server.CreateObject("Scripting.FileSystemObject")
' Get a temporary filename on the web server where we can write the iCalendar
' format file.
tmpName = fso.GetTempName() & ".ics"
filename = Server.MapPath(".") & "\" & tmpName
' Get the start and end dates of the event (GMT).
startDate = request.form("startdate")
endDate = request.form("startdate")
' Get a unique ID to assign to the calendar event.
uniqueID = FormatDateTime(Now()) & "-" & tmpName & "-@" &_
Request.ServerVariables("SERVER_NAME")
Set file = fso.CreateTextFile(filename)
' Write the iCalendar file to the file system.
file.WriteLine "BEGIN:VCALENDAR"
file.WriteLine "PRODID:-//ASP iCalendar Test//My ASP App V1.0//EN"
file.WriteLine "VERSION:2.0"
file.WriteLine "METHOD:REQUEST"
file.WriteLine "BEGIN:VEVENT"
file.WriteLine "ORGANIZER:MAILTO:onboarding@msssolutions.com"
file.WriteLine "DTSTART:" & FormatDateTime(startDate)
file.WriteLine "DTEND:" & FormatDateTime(endDate)
file.WriteLine "LOCATION:At the office"
file.WriteLine "TRANSP:OPAQUE"
file.WriteLine "SEQUENCE:0"
file.WriteLine "UID:" & uniqueID
file.WriteLine "DTSTAMP:" & FormatDateTime(Now())
file.WriteLine "DESCRIPTION:My calendar event test."
file.WriteLine "SUMMARY:Valentine's Day Party"
file.WriteLine "PRIORITY:5"
file.WriteLine "CLASS:PUBLIC"
file.WriteLine "BEGIN:VALARM"
file.WriteLine "TRIGGER:-PT15M"
file.WriteLine "ACTION:DISPLAY"
file.WriteLine "END:VALARM"
file.WriteLine "END:VEVENT"
file.WriteLine "END:VCALENDAR"
file.Close()
' Send the iCalendar file as an email attachment.
Dim mail
Set mail = CreateObject("CDO.Message")
' Configure to use an external mail server (2), supply its domain name or IP
' address (your.smtp.server), and tell it which port to use (usally 25).
mail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
mail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpServer
mail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
mail.Configuration.Fields.Update()
' Set up the email message body.
mail.Subject = "New Hire " & request.form("namelast") & request.form("namefirst")
mail.From = "onboarding@msssolutions.com"
mail.To = yourEmail
mail.TextBody = "A new hire has been posted. Please go to http://fs04sql/newhire/allnew.asp for more information." & chr(10) & chr(10) & "Name: " & request.form("namelast") & " " & request.form("namefirst") & chr(10) & "Start Date: " & request.form("startdate") & chr(10) & "Position: " & request.form("position") & chr(10) & "Division: " & request.form("division")
' Prepare the file attachment (the iCalendar file).
Dim att
Set att = mail.AddAttachment(filename)
att.ContentClass = "urn:content-classes:calendarmessage"
att.Fields.Item("urn:schemas:mailheader:content-type") = "text/calendar; method=REQUEST; name=""invite.ics"""
att.Fields.Item("urn:schemas:mailheader:content-disposition") = ""
att.Fields.Item("urn:schemas:mailheader:content-transfer-encoding") = "8bit"
att.Fields.Update()
' Set the content type of the email and send it.
mail.Fields.Item("urn:schemas:mailheader:content-type") = "multipart/alternative"
mail.Fields.Update()
mail.Send()
' Cleanup the file.
fso.DeleteFile filename, True
Set mail = Nothing
Set file = Nothing
Set fso = Nothing
' Utility function for date/time formatting.
Public Function FormatDateTime(dateTime)
FormatDateTime = _
Year(dateTime) &_
Right("0" & Month(dateTime), 2) &_
Right("0" & Day(dateTime), 2) &_
"T" &_
Right("0" & Hour(dateTime), 2) &_
Right("0" & Minute(dateTime), 2) &_
Right("0" & Second(dateTime), 2) &_
"Z"
End Function
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
good point Alex...
BigD...so I remove the innards and just stick with
' Utility function for date/time formatting.
Public Function FormatDateTime(dateTime)
End Function
??
BigD...so I remove the innards and just stick with
' Utility function for date/time formatting.
Public Function FormatDateTime(dateTime)
End Function
??
ASKER
And how would I default the end time to 1 hour after?
asp has a built in function called FormatDateTime, so if you create one yourself, it'll over-ride it. I suggest removing it totally from your code or commenting it out. Then you can use Alex's syntax for what you need.
to add an hour to a time, you'll want to use the DateAdd function:
endTime = "12:30:00 am"
endTime = DateAdd( "h", 1, endTime )
to add an hour to a time, you'll want to use the DateAdd function:
endTime = "12:30:00 am"
endTime = DateAdd( "h", 1, endTime )
ASKER
thanks to you as well bigdaddy
http://www.w3schools.com/vbScript/func_formatdatetime.asp
That should give you the different formats you need.