- 论坛徽章:
- 0
|
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
急切等待中!~~~~~~~~~!! |
|