Timestamp

  • VBScript

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Mono.

    Hallo,

    ich möchte hier ein Datum und eine Uhrzeit mit Timestamp ausgeben, habe aber anscheinend irgendwo einen Fehler.

    Als Ausgabe bekomme ich -2209161600.

    Ist die Ausgabe evtl. in Sekunden ? Wenn ja, dann müsste sich ja beim aktualisieren der Wert verändern und das tut es nicht. Der Wert bleibt immer gleich, bei Datum und bei Uhrzeit.




    Visual Basic-Quellcode

    1. <%@ LANGUAGE="VBSCRIPT" %>
    2. <%
    3. Datum = Request.Form("Datum")
    4. Zeit = Request.Form("Zeit")
    5. '---------------------------------------------------------------------------
    6. 'Timestamp:
    7. function UDate(Datum)
    8. UDate = DateDiff("s", "01/01/1970 00:00:00", Datum)
    9. end function
    10. function unUDate(intTimeStamp)
    11. unUDate = DateAdd("s", intTimeStamp, "01/01/1970 00:00:00")
    12. end function
    13. 'strDateTime = formatDate("%g:%i%a, %l %j%O %F, %Y", UDate(Now()))
    14. Zeit = UDATE(intTimeStamp)
    15. '--------------------------------------------------------------------------
    16. response.write (Datum&"<br>")
    17. response.write (Zeit&"<br>")
    18. SET cnn = Server.CreateObject("ADODB.Connection")
    19. cnn.Open "Driver={SQL Server};Server=123;Uid=123;Pwd=123;Database=123"
    20. Upload ="insert into Tabelle (Datum, Zeit) values('"&Datum&"','"&Zeit&"')"
    21. cnn.Execute(Upload)
    22. %>




    Ich wäre euch sehr dankbar wenn ihr mir helfen könntet.
    Hallo,

    ich hab das jetzt so:

    Visual Basic-Quellcode

    1. function UDate(Datum)
    2. UDate = DateDiff("s", "01/01/1970 00:00:00", Datum)
    3. end function
    4. intCurrent_Unix_Time = UDate(Now())
    5. function unUDate(intTimeStamp)
    6. unUDate = DateAdd("s", intTimeStamp, "01/01/1970 00:00:00")
    7. end function
    8. strDatum = formatDate("%g:%i%a, %l %j%O %F, %Y", UDate(Now()))
    9. Zeit = UDATE(intTimeStamp)
    10. response.write(Zeit)


    Es kommt immer diese Fehlermeldung:

    Microsoft VBScript runtime error '800a000d'

    Type mismatch: 'formatDate'

    /test/Yasemin/eventwizard/SavetoDB.asp, line 102



    Er scheint formatDate nicht zu kennen.. FormatDate ist eine Funktion und keine Variable,demnach sollte er sie kennen oder ?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Jules“ ()

    Nachdem noch niemand geantwortet hat, hab ich ne neue Funktion getestet. Die funktioniert leider auch nicht.. Als Ausgabe bekomme ich immer eine Blank Page ;(

    Visual Basic-Quellcode

    1. <%
    2. const DAY_FIRST = 1
    3. const MONTH_FIRST = 2
    4. const UNKNOWN_FORMAT = 3
    5. dim my_SHORT_DATE_FORMAT
    6. '** '* get the server's date format '*
    7. function ShortDateFormat()
    8. if my_SHORT_DATE_FORMAT = 0 then
    9. dim testDate : testDate = "01/02/1970 03:04:05"
    10. if cint(Day(testDate)) = 1 then
    11. my_SHORT_DATE_FORMAT = DAY_FIRST
    12. debugInfo("ShortDateFormat: day comes before month (dd/mm), eg "&Day(testDate)&" "&Monthname(Month(testDate)))
    13. elseif cint(Month(testDate)) = 1 then
    14. debugInfo("ShortDateFormat: month comes before day (mm/dd), eg "&Monthname(Month(testDate))&" "&Day(testDate))
    15. my_SHORT_DATE_FORMAT = MONTH_FIRST
    16. end if
    17. end if
    18. ShortDateFormat = my_SHORT_DATE_FORMAT
    19. end function
    20. '** '* Format the time for display as milliseconds '*
    21. function FormatMS(Value)
    22. FormatMS = FormatNumber(1000 * Value, 1)
    23. end function
    24. '** '* Convert a regular date to a Unix Timestamp date. '*
    25. function UDate(oldDate)
    26. UDate = DateDiff("s", "01/01/1970 00:00:00", oldDate)
    27. end function
    28. '** '* Return a formatted date given a Unix Timestamp or regular date '*
    29. '* %A - AM or PM '* %a - am or pm
    30. '* %m - Month with leading zeroes (01 - 12)
    31. '* %n - Month without leading zeroes (1 - 12)
    32. '* %F - Month name (January - December)
    33. '* %M - Three letter month name (Jan - Dec)
    34. '* %d - Day with leading zeroes (01 - 31)
    35. '* %j - Day without leading zeroes (1 - 31)
    36. '* %H - Hour with leading zeroes (12 hour)
    37. '* %h - Hour with leading zeroes (24 hour)
    38. '* %G - Hour without leading zeroes (12 hour)
    39. '* %g - Hour without leading zeroes (24 hour)
    40. '* %i - Minute with leading zeroes (01 to 60)
    41. '* %I - Minute without leading zeroes (1 to 60)
    42. '* %s - Second with leading zeroes (01 to 60)
    43. '* %S - Second without leading zeroes (1 to 60)
    44. '* %L - Number of day of week (1 to 7)
    45. '* %l - Name of day of week (Sunday to Saturday)
    46. '* %D - Three letter name of day of week (Sun to Sat)
    47. '* %O - Ordinal suffix (st, nd rd, th)
    48. '* %U - UNIX Timestamp
    49. '* %Y - Four digit year (2003)
    50. '* %y - Two digit year (03)
    51. function formatDate(byval format,byval intTimeStamp)
    52. dim unUDate, A
    53. ' Test to see if intTimeStamp looks valid. If not, they have passed a normal date
    54. if not (isnumeric(intTimeStamp)) then
    55. if isdate(intTimeStamp) then
    56. intTimeStamp = DateDiff("S", "01/01/1970 00:00:00", intTimeStamp)
    57. else
    58. debugError("Date.formatDate(): '"&intTimeStamp&"' is an invalid date format!")
    59. exit function
    60. end if
    61. end if
    62. if (intTimeStamp=0) then
    63. unUDate = now()
    64. else
    65. unUDate = DateAdd("s", intTimeStamp, "01/01/1970 00:00:00")
    66. end if
    67. unUDate = trim(unUDate)
    68. dim startM : startM = InStr(1, unUDate, "/", vbTextCompare) + 1
    69. dim startY : startY = InStr(startM, unUDate, "/", vbTextCompare) + 1
    70. dim startHour : startHour = InStr(startY, unUDate, " ", vbTextCompare) + 1
    71. dim startMin : startMin = InStr(startHour, unUDate, ":", vbTextCompare) + 1
    72. dim dateDay : dateDay = leftPad(Day(unUDate),2,"0") 'mid(unUDate, 1, startM-2) 'had to fix this from 2 to startM-2
    73. dim dateMonth : dateMonth = leftPad(Month(unUDate),2,"0") 'mid(unUDate, startM, 2)
    74. dim dateYear : dateYear = Year(unUDate)'mid(unUDate, startY, 4)
    75. dim dateHour : dateHour = leftPad(Hour(unUDate),2,"0")'replace(mid(unUDate, startHour, 2), ":", "")
    76. dim dateMinute : dateMinute = leftPad(Minute(unUDate),2,"0") 'mid(unUDate, startMin, 2)
    77. dim dateSecond : dateSecond = leftPad(Second(unUDate),2,"0")'mid(unUDate, InStr(startMin, unUDate, ":", vbTextCompare) + 1, 2)
    78. trace( "date("&unUDate&"): Month:"&dateMonth&"("&monthname(dateMonth)&") Day:"&dateDay&"")
    79. on error resume next
    80. format = replace(format, "%Y", right(dateYear, 4))
    81. format = replace(format, "%y", right(dateYear, 2))
    82. format = replace(format, "%m", dateMonth)
    83. format = replace(format, "%n", cint(dateMonth))
    84. format = replace(format, "%F", monthname(dateMonth,false))
    85. format = replace(format, "%M", left(monthname(dateMonth,true), 3))
    86. format = replace(format, "%d", dateDay)
    87. format = replace(format, "%j", cint(dateDay))
    88. format = replace(format, "%h", dateHour)
    89. format = replace(format, "%H", iif(dateHour>12, leftPad(dateHour-12,2,"0"),dateHour))
    90. format = replace(format, "%g", cint(replace(mid(unUDate, startHour, 2), ":", "")))
    91. format = replace(format, "%G", iif(dateHour>12, cint(dateHour-12),cint(dateHour)))
    92. trapError
    93. on error goto 0
    94. if (cint(dateHour) > 12) then
    95. A = "PM"
    96. else
    97. A = "AM"
    98. end if
    99. format = replace(format, "%A", A)
    100. format = replace(format, "%a", lcase(A))
    101. format = replace(format, "%i", dateMinute)
    102. format = replace(format, "%I", cint(dateMinute))
    103. format = replace(format, "%s", dateSecond)
    104. format = replace(format, "%S", cint(dateSecond))
    105. format = replace(format, "%L", WeekDay(unUDate))
    106. format = replace(format, "%D", left(WeekDayName(WeekDay(unUDate)), 3))
    107. format = replace(format, "%l", WeekDayName(WeekDay(unUDate)))
    108. format = replace(format, "%U", intTimeStamp)
    109. format = replace(format, "11%O", "11th")
    110. format = replace(format, "1%O", "1st")
    111. format = replace(format, "12%O", "12th")
    112. format = replace(format, "2%O", "2nd")
    113. format = replace(format, "13%O", "13th")
    114. format = replace(format, "3%O", "3rd")
    115. format = replace(format, "%O", "th")
    116. formatDate = format
    117. end function
    118. '** '* fill out the specified to the specified number of characters
    119. '* by left padding the number with the specified character
    120. '* @param str the string to add padding
    121. '* @param expected length of the string, if its infact shorter
    122. '* @return a string of the specified lenth, filled with the specified char '*
    123. private function leftPad(byval str,byval length,byval char)
    124. leftPad = str
    125. if len(cstr(str)) < cint(length) then leftPad = String(cint(length)-len(cstr(str)), char) & str
    126. end function
    127. function getRelativeDate(sDate)
    128. dim desc, amount, units, seconds, minutes, hours, days, months, years, nowDate
    129. if cDate(sDate) then
    130. nowDate = Now()
    131. sDate = cDate(sDate)
    132. if ShortDateFormat() = MONTH_FIRST then
    133. 'American Variant
    134. desc = Pcase(formatDate("%M %j%O",sDate))
    135. else
    136. 'International Version
    137. desc = Pcase(formatDate("%j %M",sDate))
    138. end if
    139. seconds = DateDiff("s",""&sDate,""&nowDate)
    140. minutes = DateDiff("n",""&sDate,""&nowDate)
    141. hours = DateDiff("h",""&sDate,""&nowDate)
    142. days = DateDiff("d",""&sDate,""&nowDate)
    143. months = DateDiff("m",""&sDate,""&nowDate)
    144. years = DateDiff("yyyy",""&sDate,""&nowDate)
    145. if minutes < 1 then
    146. amount = 0
    147. units = "moments"
    148. desc = "Today"
    149. elseif hours < 1 then
    150. amount = minutes
    151. units = "minute"
    152. desc = "Today"
    153. elseif days < 2 then
    154. amount = hours
    155. units = "hour"
    156. if days < 1 then
    157. desc = "Today"
    158. else
    159. desc = "Yesterday"
    160. end if
    161. elseif months < 1 then
    162. if days < 8 then
    163. amount = days
    164. units = "day"
    165. elseif days < 15 then
    166. amount = -1
    167. units = "last week"
    168. elseif days < 22 then
    169. amount = 3
    170. units = "week"
    171. elseif days < 31 then
    172. amount = 4
    173. units = "week"
    174. end if
    175. elseif years < 1 then
    176. amount = months
    177. units = "month"
    178. else
    179. desc = desc & ", " & year(sDate)
    180. amount = years
    181. units = "year"
    182. end if
    183. getRelativeDate = desc & " ("& iif(amount<1,"",amount&"&nbsp;") & units & iif(amount>1,"s","") & iif(amount=-1,"","&nbsp;ago") &")"
    184. else
    185. getRelativeDate = sDate
    186. end if
    187. end function
    188. %>
    Ich habe ein Eingabefeld. (Textarea.) Da gibt der User irgendein Datum ein. (Nicht das aktuelle Datum) und er gibt auch irgendeinen Zeitpunkt ein.(Nicht die aktuelle Zeit). Nun sollen Datum und Zeit richtig formatiert via Timestamp in einem neuen Browser wieder ausgegeben werden. (DD.MM.YYYY). Und Datum&Uhrzeit sollen auch gleichzeitig richtig formatiert in der Datenbank gespeichert werden.

    Optimal wäre natürlich, wenn ein Kalender aufgeht und der User sich sein Datum aussuchen darf.

    Ich muss das mit Timestamp machen, weil ich später damit rechnen möchte. Sonst kann ich mein Programm nicht weiter verarbeiten später.

    Mein letzter Beitrag war glaube ich sinnlos. Leider weiß ich nicht wie man einzelne Beiträge löschen kann.

    Ich hab das inzwischen so gemacht:

    Visual Basic-Quellcode

    1. function UDate(Datum)
    2. UDate = DateDiff("s", "01/01/1970 00:00:00", Datum)
    3. end function
    4. intCurrent_Unix_Time = UDate(Now()) 'Now durch Usereingabe ersetzen
    5. response.write(intCurrent_Unix_Time)
    6. function unUDate(intTimeStamp)
    7. unUDate = DateAdd("s", intTimeStamp, "01/01/1970 00:00:00")
    8. end function
    9. Zeit = unUDate(intCurrent_Unix_Time)


    Nun bekomm ich als Ausgabe die Zeit in Sekunden. (1310378091) und das aktuelle Datum und die aktuelle Uhrzeit. Meine Idee ist jetzt das aktuelle Datum+Uhrzeit durch die Eingabe des Users zu ersetzen.

    Weiß jemand wie das geht dass ich Now() mit der aktuellen Usereingabe ersetzen kann ?

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Jules“ ()