dagediff 计算两个日期之间的值 遇到的困难... 在线等待高手解答...

coollele 2010-07-14 03:30:21

我在做一个计费周期,其中有个界面为客户选择起始日期和结束日期,然后根据这两个日期计算月周期
然后我用到了函数: dagediff 计算两个日期之间的值

但是我发现以下问题,希望有朋友能帮我解决....

DateDiff("m","2010-1-01",2010-01-31) 2010-1-1 至 2010-1-31 正常返回月分为: 1个月 可是结为:0
DateDiff("m","2010-1-01",2011-2-31) 2010-1-01 至 2011-2-31 正常返回月分为: 2个月 可是结为:1

然后我在结果上加1 但是又发现以下这种情况,光靠加1后又出错了


DateDiff("m","2010-01-11",2010-02-10) 2010-01-11 至 2011-02-10 正常返回月分为: 1个月 加1后就会变成2个月,这样还是会出错

====================================
请教,我该怎么办?

请高手给出代码??
...全文
82 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbcleo 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lzp4881 的回复:]
DateDiff返回的是两个日期所在的月份差,datediff("m","2010-01-31","2010-02-01")返回的也是1,因为它们一个在1月,一个在2月。并不是说它们相差才一天就不是一个月。
[/Quote]`
CainLai 2010-08-10
  • 打赏
  • 举报
回复
2L给出了答案了,我来接分,因为按你的思路来计算,实际上是在以天数为依据,所以m换成d或者day,然后除以30大概就差不多了。。
pzn1022 2010-08-10
  • 打赏
  • 举报
回复
DateDiff("d","2010-1-01",2010-01-31)算出天数
lzp4881 2010-08-10
  • 打赏
  • 举报
回复
DateDiff返回的是两个日期所在的月份差,datediff("m","2010-01-31","2010-02-01")返回的也是1,因为它们一个在1月,一个在2月。并不是说它们相差才一天就不是一个月。
  • 打赏
  • 举报
回复
你应该是求天数,但是这个求天数也有bug
必须经过程序处理方可正确
  • 打赏
  • 举报
回复
DateDiff("m","2010-01-11",2010-02-10) 2010-01-11 至 2011-02-10 正常返回月分为: 1个月 加1后就会变成2个月,这样还是会出错


这个只能返回1

你根本不理解程序的月和实际上的月的需别
  • 打赏
  • 举报
回复
[Quote=引用楼主 coollele 的回复:]
我在做一个计费周期,其中有个界面为客户选择起始日期和结束日期,然后根据这两个日期计算月周期
然后我用到了函数: dagediff 计算两个日期之间的值

但是我发现以下问题,希望有朋友能帮我解决....

DateDiff("m","2010-1-01",2010-01-31) 2010-1-1 至 2010-1-31 正常返回月分为: 1个月 可是结为:0
DateDiff("m",……
[/Quote]
你这个本身就有错误
因为你计算的是月,DateDiff("m","2010-1-01",2010-01-31)等于0是正常的
DateDiff("m","2010-1-01",2010-02-1)
这样才是等于1
yzx0607 2010-07-14
  • 打赏
  • 举报
回复
DateDiff("m","2010-1-01",2010-01-31) 2010-1-1 至 2010-1-31 正常返回月分为: 1个月 可是结为:0
DateDiff("m","2010-1-01",2011-2-31) 2010-1-01 至 2011-2-31 正常返回月分为: 2个月 可是结为:1

显示是正确的

2010-1-01 是一月 2010-1-31 也是一月,当然显示0
算月的话,把后面的日期加1天就可以了
DateDiff("m",某月第一天,某月月尾+1天)

DateAdd("d",1,某月月尾)=下月1号
sy_binbin 2010-07-14
  • 打赏
  • 举报
回复
LZ好好看看DateDiff的用法吧!!

gingerkang 2010-07-14
  • 打赏
  • 举报
回复
你的一个月的定义是什么呀?28,29,30,31天?
一般按照自然月的就为月,这个函数是一点问题都没有的
dz7800 2010-07-14
  • 打赏
  • 举报
回复
在m上减1就可以了
2321zhf 2010-07-14
  • 打赏
  • 举报
回复
貌似只有ls这样
kaukiyou 2010-07-14
  • 打赏
  • 举报
回复
DateDiff("d","2010-1-01",2010-01-31)

算出天数,至于月数,除以30就好了吧?

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧