我在PHP中设置默认时区有一个看似简单的问题。我试图使用default_timezone_set()
来影响我的mktime()
功能失败。
简而言之,我的服务器设置为UTC,我使用default_timezone_set()
设置时区,然后调用mktime()
设置数据库日期时间戳。
但是,返回的时间(以毫秒为单位)将以UTC时间的形式返回。我回应了default_timezone_get()
,它确实以我设置的时区返回,并且似乎无法确定为什么一旦我成功设置了时区,它就不会影响{ {1}}功能。
我在这里遗漏了什么吗?是不是设置了应该影响PHP中所有日期/时间函数的默认时区?
答案 0 :(得分:2)
Unix时间戳总是以UTC格式,您需要在获取时间戳后将其转换为正确的时区。
答案 1 :(得分:0)
您是否尝试过使用date_default_timezone_set?来自mktime manual
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="dv_country">
<select name="country" class="form-control">
<option value="" selected="selected">Select Country</option>
<option value="United States">United States</option>
<option value="United Kingdom">United Kingdom</option>
<option value="Afghanistan">Afghanistan</option>
<option value="Albania">Albania</option>
<option value="Algeria">Algeria</option>
<option value="Canada">Canada</option>
</select>
</div>
<div class="dv_state_US autoState">
<select name="state" class="form-control">
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
</select>
</div>
<div class="dv_state_CA autoState">
<select name="state" class="form-control">
<option value="AB">Alberta</option>
<option value="BC">British Columbia</option>
<option value="MB">Manitoba</option>
<option value="NB">New Brunswick</option>
</select>
</div>
答案 2 :(得分:0)
我在这里愚蠢,我刚刚意识到我没有从第三个PHP文件调用时区集,当然,date_default_timezone_set()函数不会影响单独的文件。
然而,答案和评论给了我一些关于如何处理它的新想法!谢谢大家的意见。