免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2690 | 回复: 12
打印 上一主题 下一主题

php+mssql的问题,请赐教!谢谢,在线等!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-09 17:08 |只看该作者 |倒序浏览
php从mssql数据库中取得字段(类型为datetime)库中为2003-07-02 11:23:17,但是在页面上显示为2003 七月 2 11:23:17
而不是2003-07-02 11:23:17 ,我无法通过这个数组计算时间差(用时间戳求差值)!!
因为2003 七月 2 11:23:17 不是标准时间输入,http://www.gnu.org/manual/tar-1.12/html_chapter/tar_7.html,不知道如何可以得到这个,请问如何可以成为2003-07-02 11:23 的标准时间返回值??

论坛徽章:
0
2 [报告]
发表于 2003-07-09 17:12 |只看该作者

php+mssql的问题,请赐教!谢谢,在线等!!

数据库中是对的?读取出来就变了??
好象不太可能的样子

论坛徽章:
0
3 [报告]
发表于 2003-07-09 17:28 |只看该作者

php+mssql的问题,请赐教!谢谢,在线等!!

就是这个样子!
用mssql企业管理器打开看到的就是这个样子标准的输入格式,我使用(getdate()),自动生成的时间字段!,但是在php取得的数组显示为非标准的,这个非标准的不能用strtotime()来计算时间戳。计算出来的有误差,非常的大。

请高人赐教吧!!!求求了,我已经花了36小时为了这个问题了!

我的意图是用时间为横坐标,来用image--(GD)来时时生成图片(折线图)。
其它都已经搞定了,唯有这,我日!~~~~,看了很多的资料,毕竟用php+mssql 的人不多,但是mssql 的维护比mysql的要方便,以前的库就是mssql的,不能改~~!asp我有不会时时生成图片!!快疯了!请高手赐教吧!

再谢谢!!!!!1

论坛徽章:
0
4 [报告]
发表于 2003-07-09 17:33 |只看该作者

php+mssql的问题,请赐教!谢谢,在线等!!

XVIII. 时间日期函数库
介绍
可以用这些函数得到 PHP 所运行的服务器的日期和时间。可以用这些函数将日期和时间以很多不同方式格式化输出。

注: 请留意这些函数依赖于服务器的地区设置。确认在使用这些函数时考虑到了夏令时的设置和闰年。

==========================
以上是php manual的解释====请留意这些函数依赖于服务器的地区设置====我想可能是这个问题,但我不知道如何解决???

我已经基本疯了!

论坛徽章:
0
5 [报告]
发表于 2003-07-09 17:35 |只看该作者

php+mssql的问题,请赐教!谢谢,在线等!!

不知道怎么会可能出现这种问题
没完过mssql
实在没有办法的办法就是自己作个函数把不标准的格式转换成标准的.

论坛徽章:
0
6 [报告]
发表于 2003-07-09 18:28 |只看该作者

php+mssql的问题,请赐教!谢谢,在线等!!

楼上的方法,是我最后的解决方法了,下策中的下策了,要是这样,我就不用非这劲在这等高手了!!!强烈推荐斑竹,发表一篇名为:“回答的智慧的贴子!!!”

总而言之,楼上的方法可以解决问题,但并不好,看来我还要等高手赐教!!!

论坛徽章:
0
7 [报告]
发表于 2003-07-09 22:29 |只看该作者

php+mssql的问题,请赐教!谢谢,在线等!!

把你打印时间段的代码贴出来,好么?

论坛徽章:
0
8 [报告]
发表于 2003-07-10 00:04 |只看该作者

php+mssql的问题,请赐教!谢谢,在线等!!

试试SQL语句:

  1. select datediff("millisecond", datetime_item, getdate()) as time_diff from table_name
复制代码


这样应该就能获得记录时间到当前时间的毫秒数了 呵呵
datediff 函数的第一个字段可以为
year,quarter,month,dayofyear,day,week,hour,minute,second,millisecond
其他就不说了,quarter是季度
第二个字段是需要比较的时间字段名
第三个字段是作为参照的时间字符串
如果需要比较的时间比参照的时间晚,会返回负值。
当结果超出整数值范围,datediff产生错误。对于毫秒,最大数是24天20小时31分钟零23.647秒;对于秒,最大数是68年。

论坛徽章:
0
9 [报告]
发表于 2003-07-10 01:59 |只看该作者

php+mssql的问题,请赐教!谢谢,在线等!!

<?
$tsql="select yali,rtime from meter0001 where rtime >;= '2003-7-2 00:00:00' order by uid desc";
#选择yali和rtime字段从meter0001表中,条件是rtime(datetime型,由getdate()函数自动生成),以uid反向排序
include("yocc/connect/connect.php";        //连接mssql数据库

$trows=mssql_query($tsql,$db_id);        //执行查询
$yrow = mssql_fetch_array($trows);        //返回数据库中meter0001表的最后一条只包含yali和rtime字段的记录集,并成为数组$yrow

/*为了测试一下列出数据库中meter0001表的结构
列名                数据类型                长度
uid                int                4
yali                varchar                50
rtime                datetime        8        默认值(getdate())
#///////////////下面是其中一条记录
uid                yali                rtime
14                123.36                2003-07-04 1:03:03
#/////////////
*/
?>;
<table align = center>;<tr>;<td>;
<?
echo "正确的\$yrow[rtime] = ".$yrow[rtime]."<br>;";        //显示$yrow数组的rtime元素的值



#为了对比验证用strtotime()返回的时间戳是不是正确我手工写了一个
echo "正确的返回时间戳应该是: ".strtotime("2003-07-04 1:03:03"."<br>;";
echo "代入\$yrow[rtime]后的时间戳:".strtotime($yrow[rtime])."<br>;";
echo "strtotime(\$yrow[rtime])用时间戳的到的时间".date("Y-m-d h:i:s",strtotime($yrow[rtime]))."<br>;";
?>;
</td>;</tr>;</table>;

============================
结果如下:

正确的$yrow[rtime] = 2003 七月 4 1:03
正确的返回时间戳应该是: 1057251783
代入$yrow[rtime]后的时间戳:1057838580
用strtotime($yrow[rtime])时间戳的到的时间2003-07-10 08:03:00


=============================
我想写的应该没有问题了,我的配置为win2k server +mssql 2k +apache+php

这里的问题是上面的:正确的$yrow[rtime] = 2003 七月 4 1:03:03与数据库中的值不同,数据库里为2003-07-04 1:03:03,实质一样,但是格式不同。
如果我的程序原理没错的话,问题就只能是出在这里了,因为,
strtotime()函数要求使用Date input formats 里规定的格式,可以参考http://www.gnu.org/manual/tar-1.12/html_chapter/tar_7.html

但是规定的格式中没有2003 七月 4 1:03:03这样的格式,我想所以返回的时间戳不正确!!!并且php manual 里面写有如下字样:XVIII. 时间日期函数库
介绍
可以用这些函数得到 PHP 所运行的服务器的日期和时间。可以用这些函数将日期和时间以很多不同方式格式化输出。

注: 请留意这些函数依赖于服务器的地区设置。确认在使用这些函数时考虑到了夏令时的设置和闰年。

我想可能是不是服务器的地区设置有问题造成的!?如果是这样请告诉我如何解决,如果不是,请帮我想一种更好的办法来得到数据库中rtime字段的时间戳!
当然了,必要的时候可以修改表结构!

以上是我的全部问题~~~~~~非常希望高手能帮小弟一个忙,这里先谢过了!~~~~~~谢谢~~!,本人qq:1341615,msn:yocczr@msn.com
急切等待中!~~~~~~~~~!!

论坛徽章:
0
10 [报告]
发表于 2003-07-10 02:05 |只看该作者

php+mssql的问题,请赐教!谢谢,在线等!!

原帖由 "一颗小白菜" 发表:

这样应该就能获得记录时间到当前时间的毫秒数了 呵呵
datediff 函数的第一个字段可以为
year,quarter,month,dayofyear,day,week,hour,minute,second,millisecond
其他就不说了,quarter是季度
第二个..........
   

不知道这个time_diff函数是那里的我在mssql和php中都没有找到???555555555
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP