×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

应该是这样

没怎么用过ASP,但是碰巧也遇到过这个问题。

如果我没记错的话,ASP里面,也就是VBScript里面没有VB的Format,只有FormatDateTime(), FormatNumber() etc,用起来还是不爽。

所以我是这么做的,
用VB写一个一句话的function: FormatString = Format(str, pattern),将其编译成ActiveX Dll, 存到Server上,注册。

然后,在ASP里面调用:
Dim objDLL
Set objDLL = Server.CreateObject("ProjectName.ClassModuleName")
DayName = objDLL.FormatString(DateRequested, "yyyymmdd")

这样,你就可以随意用VB的Format了,爽吧?

呵呵,业余水平,见笑了。
Report

Replies, comments and Discussions:

  • 枫下家园 / 电脑用户 / 请问DX一个ASP问题,如何把date()函数得到的值如2002-6-22转换成象20020622的格式?谢谢!
    • 是不是可以先转成string再replace掉里面的东西,月日不足两位补零? 麻烦
      • 最好是用几个函数组合起来可以完成这个功能,就是不知道应该用哪个函数。
        • 看看FORMAT里有没有这个选项
        • 1。确信用date()的得到的函数的格式是2002-6-22还是2002-06-22。2。格式若为后者,是否可以用下面的函数得到=left(**,4) & middle (**, 6, 2) & right(**, 2). 3.嗬嗬,我是按照sql来解决问题的,不置可否用在asp中。
        • stringDate=format(date, "YYYYMMDD")
          • 不成,vbscript里面没有fomat这个函数
            • 那就写个组件嘛
            • 分别取年,月,日,转成string以后联起来。
              • 关键取回来的月份是个1位数,怎么转成2位数。
                • if 一下嘛, 加零嘛...着急ing
                  • 老大,我是在一个表单里面给出一个初始值,不用if语句那么复杂吧?
                    • year(date) & int(month(date)/10) & right(month(date),1) & int(day(date)/10) & right(day(date),1)
                      • 不错
                        • 可惜比起下面的,还是太复杂了。
                • 转换的时候,函数中应该有个参数指明几位或称为几个字符。
    • 应该是这样
      没怎么用过ASP,但是碰巧也遇到过这个问题。

      如果我没记错的话,ASP里面,也就是VBScript里面没有VB的Format,只有FormatDateTime(), FormatNumber() etc,用起来还是不爽。

      所以我是这么做的,
      用VB写一个一句话的function: FormatString = Format(str, pattern),将其编译成ActiveX Dll, 存到Server上,注册。

      然后,在ASP里面调用:
      Dim objDLL
      Set objDLL = Server.CreateObject("ProjectName.ClassModuleName")
      DayName = objDLL.FormatString(DateRequested, "yyyymmdd")

      这样,你就可以随意用VB的Format了,爽吧?

      呵呵,业余水平,见笑了。
      • 真不错。
      • 水平真高,但是还有个问题,编译出来的activex dll在server上面怎么注册?我是租用的空间。
        • 没戏.
        • 嘿嘿,过奖。这个我也不知了,当初我是直接跑到我们的server上弄的,最后在安装说明书里写明就是了。不过我想你可以和host的tech support联系一下,也许可以。
          • 谢谢了,估计不成,当初想让他们给我加个系统DSN都不行,搞的我现在只能手写代码。我只是用access数据库啊......
      • 张地些. :)
        • 唉,才涨列一哈奏让你打压列
          • 莫油,莫油.
    • FormatDateTime
      • formatdatetime也不成,使用vbLongDate参数和vbShortDate参数都无法得到yymmdd的格式。
        • 想起来了,当时好象是用DatePart分别取出年,月,日,然后拼一块.
          • 又出新问题,如何用datepart得到年、月或者日?直接写datepart(m,date())就报错。
            • 用lilyba的办法挺好。year(date) *10000 + month(date)*100+day(date)
    • 可以得到分别得到年月日么?如果可以可否这样:年*10000+月*100+日。
      • faint
        • 对还是不对,你就先倒了。
          • 你真可爱.我估计你也是混在我党队伍里的.:D
            • 赫赫,我还是不知道
      • 还是你这个简单,我想得太复杂了。
        • 有底了,谢谢
        • 报告大家一个好消息,通过集思广益,终于搞定,结果是这样的:Year(date)*10000+month(date)*100+day(date),万分感谢!
          • 您那结果是数字类型,最好用字符串,也可以写成:String(4,Year(date))+String(2,month(date))+String(2,day(date))