如果你使用标准格式倒也罢了,但是使用中文日期格式YYYY年M月D日
H时m分。如果你使用JS那么很难判断是否合乎判断,尤其是当格式发生变化时。判断字符串是否合法是有效验证与转换的前提。剩下的就是将其转换成Date对象,并转换成标准的YYYY-MM-DD
HH:mm格式。使用JS的Date.parse将不能解析上面的中文格式,只支持GMT、UTC、标准时区格式。这个时候,如果使用VBScript的IsDate函数进行验证那是再简单不过的事情了,随后再使用FormatDateTime进行转换日期、时间格式。需要注意的是VB所提供的方法,暂时没发现找到YYYY-MM-DD格式的,只有YYYY-M-D格式的。这个时候需要自己写语句来实现。当你得到了日期对象,还有什么不容易解决的呢。
我们可以在同一个页面中使用JS调用VBS写的函数。基于此,我们可以解决单纯用一种脚本语言无法胜任的事情。下面将给出具体的例子。以后可以举一反三地解决类似问题。
<script language="VBScript">
<!--
Function converToFormatDate(value)
Dim dateValue
Dim FormatDate
If
Instr(1,value,"年")<1 Then
value=CStr(Year(Now()))+"年"+value
End If
If isDate(value) Then
dateValue=CDate(value)
FormatDate=CStr(Year(dateValue))+"-"
If
Month(dateValue)<10 Then
FormatDate=FormatDate+"0"
FormatDate=FormatDate+CStr(Month(dateValue))+"-"
If
Day(dateValue)<10 Then
FormatDate=FormatDate+"0"
FormatDate=FormatDate+CStr(Day(dateValue))
converToFormatDate=FormatDate+" "+FormatDateTime(dateValue,4)
Else
converToFormatDate=value
End If
End Function
Sub ok_OnClick
convert_date.Value=converToFormatDate(input_date.Value)
End Sub
-->
</script>
<script language="Javascript">
<!--
function getFormatDate(value)
{
return converToFormatDate(value);
}
function ok()
{
var
objInput=document.getElementByIdx("input_date");
var
objConvert=document.getElementByIdx("convert_date");
if(objInput&&objInput.value&&objConvert)
objConvert.value=getFormatDate(objInput.value);
}
-->
</script>
<input type="text" name="input_date" id="input_date"
value="3月23日 11时3分"/>
<input type="text" name="convert_date"
id="convert_date" value=""/>
VBScript:<input type="button"
name="ok" id="ok" value="VB转换"
onClick="vbscript:ok_OnClick()"/>
JavaScript:<input type="button"
name="ok_java" id="ok_java" value="JS转换"
onClick="javascript:ok()"/>
加载中,请稍候......