如何处理数字6位数日期

时间:2013-04-15 14:27:33

标签: date asp-classic vbscript integer

我有一个驻留在服务器上的日历程序,该程序以以下格式将日期存储到数据库中:

  

YYYYMMDD

在asp中管理这些日期有“简单”的方法吗?例如,我们假设我们将2013年4月20日作为日期:

20130420

我们想在此日期添加20天,因此我们想要制作:

20130510

任何想法?在asp中有一个integerTOdate转换吗?或者我可以用来在数字20130420上添加“天”的东西?

3 个答案:

答案 0 :(得分:3)

像这样(未经测试):

Dim strDate, theDate, theDatePlusTwentyDays
Dim Year, Month, Day  

' The date is stored as a string...
strDate = "20130420"

' Extract the components of the date
Year  = Mid(strDate, 1, 4)
Month = Mid(strDate, 5, 2)
Day   = Mid(strDate, 7, 2)

' Convert the components of the date into a datetime object
theDate = DateSerial(Year, Month, Day)

' Add 20 days using DateAdd
theDatePlusTwentyDays = DateAdd("d", 20, theDate)

答案 1 :(得分:2)

是的,您可以使用DateAdd功能

Response.Write(DateAdd("d",1,Now()))

您需要先将日期格式化为

<%
dim _dateOnServer
dim _formattedDate
dim _day
dim _month
dim _year

_dateOnServer = 20130420

_year = Left(_dateOnServer,4)
_month  =  Mid(_dateOnServer,5,2)
_day = Right(_dateOnServer,2)


_formattedDate =  _month &"-"& _day &"-"& _year

dim _newDate
_newDate =  DateAdd("d",20, _formattedDate )

_day = Left(_newDate,2)
_month  =  Mid(_newDate,4,2)
_year = Right(_newDate,4)

dim _newDateFormat
_newDateFormat = _year & _month & _day

%>

答案 2 :(得分:1)

能够完全控制订单和格式的解决方案......

strDay = Day(Date)
strMonth = Month(Date)
strYear = Year(Date)
strHours = Hour(Now)
strMins = Minute(Now)
strSecs = Second(Now())
    if len(strMonth) = 1 then
        strMonth = "0" & strMonth
    end if
    if len(strDay) = 1 then
        strDay = "0" & strDay
    end if
    if len(strHours) = 1 then
        strHours = "0" & strHours
    end if
    if len(strMins) = 1 then
        strMins = "0" & strMins
    end if
    if len(strSecs) = 1 then
        strSecs = "0" & strSecs
    end if

strDateAdded = strYear & "-" & strMonth & "-" & strDay
strDateAddedTime = strDateAdded & " " & strHours & ":" & strMins

使用此方法您可以完全控制订单,甚至在不同时区运行您的Web应用程序时,您仍然可以维护DD / MM格式......或者您想要的任何订单,例如MM-DD-YY(通过重新排序)并削减一年)。我个人更喜欢YYYY-MM-DD,因为通过ASC和DESC排序更容易使用,即:更容易阅读,因为所有行都具有相同数量的字符,如:

2013-04-01 03:15
2013-04-09 10:15
2013-04-22 07:15
2013-04-23 10:15
2013-04-23 10:60
2013-10-25 12:01
2013-10-25 12:59

而不是:

2013-4-1 3:15
2013-4-9 10:15
2013-4-22 7:15
2013-4-23 10:15
2013-4-23 10:60
2013-10-25 12:1
2013-1-25 12:59