加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

技术:巧妙使用VBScript进行日期格式转换

(2009-09-23 19:10:58)
标签:

杂谈

分类: 三字经

    如果你使用标准格式倒也罢了,但是使用中文日期格式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()"/>

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有