找回密码
 加入
搜索
查看: 3745|回复: 12

[AU3基础] [已解决]这个关于日期的问题,怎么解决?(6#有源码,大家帮忙看看.)

  [复制链接]
发表于 2010-3-30 16:16:49 | 显示全部楼层 |阅读模式
本帖最后由 superpangya 于 2010-4-6 10:16 编辑



用msgbox输出显示的是2010年  3月30日,为什么一到listview里就显示20100330000000了,这个是怎么回事? 怎么解决?

用这个日期的下拉菜单选择时间很方便,但是只能输入日期,如果我想把具体时间也加上怎么做?

谢谢大家帮忙..


补充说明:
  刚才查看了下,数据库里面的时间字段显示的是2010-3-30,但到了LISTVIEW里面就变了..

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

 楼主| 发表于 2010-3-30 17:34:42 | 显示全部楼层
谁来帮帮我啊?
 楼主| 发表于 2010-3-31 08:19:05 | 显示全部楼层
来人啊..帮帮忙.
发表于 2010-3-31 08:23:22 | 显示全部楼层
字段类型换成文本的试试。。
发表于 2010-3-31 10:38:59 | 显示全部楼层
用msgbox输出显示的是2010年  3月30日,为什么一到listview里就显示20100330000000了,这个是怎么回事? 怎么解决?
用这个日期的下拉菜单选择时间很方便,但是只能输入日期,如果我想把具体时间也加上怎么做?


第一个问题,应该是数据库表数据类型定义的问题,没看到你的代码,你自已检查一下,修改数据类型可以解决
第二个问题,可以通过Au3获取具体时间,然后加到日期那里去就可以了

没有你的代码,我只是向你提供了解决问题的思路
 楼主| 发表于 2010-3-31 11:06:02 | 显示全部楼层

这个是源程序和数据库,
数据库的时间字段为DATATIME, 如果改成文本的话,不太好吧?


时间我想自己设置,不是通过自动获取的方式.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2010-3-31 16:16:11 | 显示全部楼层
大家帮帮忙啊.........
 楼主| 发表于 2010-4-1 07:55:56 | 显示全部楼层
求高手帮忙...
发表于 2010-4-1 10:14:21 | 显示全部楼层
本帖最后由 C.L 于 2010-4-1 10:27 编辑

看了你的源码, 在日期处理上,你的日期输入框是按照数据库读出的数据类型来确定是否建立日期输入框,而写入数据库该字段的数却是从这个输入框读到的字符串,这就有问题了,数据库这个字段定义为datatime,写入的只有日期没有时间,所以listview后面的一串0,是必然的.

我帮你改了一下adds()这个函数,可以解决你上面的问题.
Func adds($w, $arr) ;建立Label(数量)

        For $i = 0 To $w - 1

                $y = StringSplit($arr[$i + 1], " ") ;以指定分隔符把字符串拆分成若干子串,返回一个数组,第一个元素($array[0])保存拆分后子串的数量,其余元素($array[1],$array[2] 等等)则保存着拆分后的每个字符串
                                $linshi =StringRight($arr[$i + 1],8)
                                If $linshi = 'datetime' Then 
                                        
                                        Local $DTM_SETFORMAT_, $style
                                        $ninput[$i] = GUICtrlCreateDate("", 340, 355 + 20 * $i, 450, 20)
                                        $DTM_SETFORMAT_ = 0x1032        ; $DTM_SETFORMATW
                                        $style = "yyyy/MM/dd HH:mm:ss"
                                        GUICtrlSendMsg($ninput[$i], $DTM_SETFORMAT_, 0, $style)
;~                                 $ninput[$i]=GUICtrlCreateDate("", 340, 355 + 20 * $i, 450, 20)
                            Else
                                $ninput[$i] = GUICtrlCreateInput("", 340, 355 + 20 * $i, 450, 20)
                                EndIf

                $nLabel[$i] = GUICtrlCreateLabel($y[1], 280, 355 + 20 * $i, 60, 20)
                                

                

        Next

EndFunc   ;==>adds

评分

参与人数 2威望 +2 金钱 +40 收起 理由
superpangya + 20 谢谢朋友,我要的就是这个效果..
afan + 2 + 20

查看全部评分

发表于 2010-4-1 10:19:06 | 显示全部楼层
贴一个实测图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-4-1 10:22:21 | 显示全部楼层
本帖最后由 C.L 于 2010-4-1 10:24 编辑
这个是源程序和数据库,
数据库的时间字段为DATATIME, 如果改成文本的话,不太好吧?


时间我想自己设 ...
superpangya 发表于 2010-3-31 11:06


时间可以自已输入,直接在输入框那里就可以改

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-4-5 13:04:38 | 显示全部楼层
你的数据库字段类型设置成了时间,格式是显示的格式
设置成文本就可以了
 楼主| 发表于 2010-4-6 10:15:56 | 显示全部楼层
谢谢楼上朋友们的热情帮助...
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-14 08:28 , Processed in 0.083508 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表