php如何实现夏令时---达人请指教!!!!急

时间:2022-07-04 14:46:21
已知 夏令时的时间段和时差,如何实现在夏令时的时间段,让时差+1?
以前实现这个。只是需要 $dst = data("I");
可以判断,但是5.1版本以上貌似不支持了。
还有其他的方法吗?

11 个解决方案

#1


你在php手册评论版,搜索"summer",评论里面好多例子,根据需要选取吧

#2


data("I") 是否夏令时
你设置的时区是执行夏令时的时候才有效,否则只会返回0

#3


引用 楼主 muyaoray310 的回复:
已知 夏令时的时间段和时差,如何实现在夏令时的时间段,让时差+1?
以前实现这个。只是需要 $dst = data("I");
可以判断,但是5.1版本以上貌似不支持了。
还有其他的方法吗?


你是在http://us2.php.net/docs.php  这个网上找的吗?
我找了好久。都没有找到,你方便给我发的link吗?

#4


chm有两份,字节数大的一份就是带评论的

#5


引用 2 楼 xuzuning 的回复:
data("I") 是否夏令时
你设置的时区是执行夏令时的时候才有效,否则只会返回0


但是目前data("I")已经不好用了吧。。到5.1版本以上就没有了吧。
我目前的条件是。我知道一个地区从几月几号到几月几号是夏令时,我也知道时差。。
例如==作个比方
澳大利亚  夏令时是3月10号---11月10号
澳大利亚   时差 是3 小时

我要实现一个功能,就是获取澳大利亚的时间,澳大利亚的时间应该等于UTC标准时间加上时差。当3月10号至11月10号时,此阶段时差由3变成4。所以在计算时间上需要判断是否是夏令时。。就是这个功能。。

我感觉php应该提供类似的方法。。。如果可以的话,请帮忙解决下。谢谢斑竹。

#6


还在的,新版本计算时间前要先设时区,不然就用php.ini里面的时区
两个都没有就出错(记忆中是这样的)

#7


引用 6 楼 snmr_com 的回复:
还在的,新版本计算时间前要先设时区,不然就用php.ini里面的时区
两个都没有就出错(记忆中是这样的)

请问一下,因为我这里有20多个国家和地区。。我不能再php.ini里面设置。
那我在编码之前就是把每个时区的国家都设置好他们的时区,然后通过 $dst = data("I");判断。如果是夏令时就返回1,否则返回0。这样对吗?

#8


如果对不同客户,可以让他们自己选时区

如果是程序要计算多个时区,就用语句改变

参考 DateTime::setTimezone

#9


引用 8 楼 snmr_com 的回复:
如果对不同客户,可以让他们自己选时区

如果是程序要计算多个时区,就用语句改变

参考 DateTime::setTimezone


DateTime::setTimezone

这个是什么语法。恩。。有没有实例可以参考。谢谢指教。。

#10


引用 8 楼 snmr_com 的回复:
如果对不同客户,可以让他们自己选时区

如果是程序要计算多个时区,就用语句改变

参考 DateTime::setTimezone


我现在用这个代码。。data(I)就是报错了。。。

date_default_timezone_set('Etc/GMT' . $raw_offset);
$dst = data("I");


你说的DateTime::setTimezone是属于java?php 有这个函数吗?

#11


你从来不看手册的么?凭记忆写? 

很厉害啊,我写了好多年都是先打开手册再写

#1


你在php手册评论版,搜索"summer",评论里面好多例子,根据需要选取吧

#2


data("I") 是否夏令时
你设置的时区是执行夏令时的时候才有效,否则只会返回0

#3


引用 楼主 muyaoray310 的回复:
已知 夏令时的时间段和时差,如何实现在夏令时的时间段,让时差+1?
以前实现这个。只是需要 $dst = data("I");
可以判断,但是5.1版本以上貌似不支持了。
还有其他的方法吗?


你是在http://us2.php.net/docs.php  这个网上找的吗?
我找了好久。都没有找到,你方便给我发的link吗?

#4


chm有两份,字节数大的一份就是带评论的

#5


引用 2 楼 xuzuning 的回复:
data("I") 是否夏令时
你设置的时区是执行夏令时的时候才有效,否则只会返回0


但是目前data("I")已经不好用了吧。。到5.1版本以上就没有了吧。
我目前的条件是。我知道一个地区从几月几号到几月几号是夏令时,我也知道时差。。
例如==作个比方
澳大利亚  夏令时是3月10号---11月10号
澳大利亚   时差 是3 小时

我要实现一个功能,就是获取澳大利亚的时间,澳大利亚的时间应该等于UTC标准时间加上时差。当3月10号至11月10号时,此阶段时差由3变成4。所以在计算时间上需要判断是否是夏令时。。就是这个功能。。

我感觉php应该提供类似的方法。。。如果可以的话,请帮忙解决下。谢谢斑竹。

#6


还在的,新版本计算时间前要先设时区,不然就用php.ini里面的时区
两个都没有就出错(记忆中是这样的)

#7


引用 6 楼 snmr_com 的回复:
还在的,新版本计算时间前要先设时区,不然就用php.ini里面的时区
两个都没有就出错(记忆中是这样的)

请问一下,因为我这里有20多个国家和地区。。我不能再php.ini里面设置。
那我在编码之前就是把每个时区的国家都设置好他们的时区,然后通过 $dst = data("I");判断。如果是夏令时就返回1,否则返回0。这样对吗?

#8


如果对不同客户,可以让他们自己选时区

如果是程序要计算多个时区,就用语句改变

参考 DateTime::setTimezone

#9


引用 8 楼 snmr_com 的回复:
如果对不同客户,可以让他们自己选时区

如果是程序要计算多个时区,就用语句改变

参考 DateTime::setTimezone


DateTime::setTimezone

这个是什么语法。恩。。有没有实例可以参考。谢谢指教。。

#10


引用 8 楼 snmr_com 的回复:
如果对不同客户,可以让他们自己选时区

如果是程序要计算多个时区,就用语句改变

参考 DateTime::setTimezone


我现在用这个代码。。data(I)就是报错了。。。

date_default_timezone_set('Etc/GMT' . $raw_offset);
$dst = data("I");


你说的DateTime::setTimezone是属于java?php 有这个函数吗?

#11


你从来不看手册的么?凭记忆写? 

很厉害啊,我写了好多年都是先打开手册再写