php time()为空_php time() 的问题

time()取得是服务器的时间,那么在中国,和美国取得时间是一样的吗?因为开发出了个问题,商品团购活动在中国已经结束,但是国外还能购买,所有时间用的都是时间戳,数据库的开始时间是一致的,难道是time()的问题?

回复内容:

time()取得是服务器的时间,那么在中国,和美国取得时间是一样的吗?因为开发出了个问题,商品团购活动在中国已经结束,但是国外还能购买,所有时间用的都是时间戳,数据库的开始时间是一致的,难道是time()的问题?

时间戳是 从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。

所以,该值与时区无关,与时区有关的是时间,比如 1471827600是北京时间(2016-08-22T09:00,东8区),那么同样的时间戳在东七区的时间䪱炯2016-08-22T08:00。

上下楼答案都对, 时间戳与时区无关. 但是时间戳转化成日期时间格式时, 与时区有关. 之前答案错误... 为误导题主道歉.

$time = time();

date_default_timezone_set('America/Los_Angeles');

echo time() . PHP_EOL;

echo date('Y-m-d H:i:s', $time) . PHP_EOL;

date_default_timezone_set("UTC");

echo time() . PHP_EOL;

echo date('Y-m-d H:i:s', $time) . PHP_EOL;

time()获得的是时间戳,而时间戳是无时区的,都是统一采用格林尼治时间。所以除非你两台服务器本身的服务器时间就不一致,不然获得的time()是一致的。

时区不一样啊

统一时区,为UTC,我也遇到过

函数time()获取的是时间戳,是没有时区概念的.

但是如果你用国内外2台服务器,设置同一个时间戳开始售卖,同一时间戳结束售卖,那么国内开始的时候,国外的网站是没有开始的,(推测的依据是题主说国内结束国外还没有结束,而售卖持续的时间一样)因为时间戳转换为时间就有了时区的概念,所以如果要同时售卖,同时结束,你需要将两地的时间换算成格林威治标准时间(时间戳的由来),然后得到不同的时间戳,加上你想要持续的售卖时间就可以了.

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值