2013-04-26 61 views
0

我試圖分配一個帶有時區信息的變量,它將更改保存在數據庫中的信息的時間。在PHP中使用日期函數更改時區

這裏是我的代碼無法正常工作:

<?php 
$timeZone = "- 3600"; 
$date = date('His', time() $timeZone); 
echo $date; 
?> 

但我做到這一點時,它的工作原理...

<?php 
$date = date('His', time() - 3600); 
echo $date; 
?> 

爲什麼不會在那裏工作的變化?

+0

一個是字符串,另一個是整數... – Daniel 2013-04-26 01:17:53

+0

嗯,在你說幾秒?通常我會主張['DateTime :: setTimeZone()'](http://www.php.net/manual/en/datetime.settimezone.php),但它意味着處理你的時區...並且你的當前代碼不起作用,因爲變量中的代碼沒有執行,我怎麼會有'$ string ='exit';否則不關閉PHP關閉? – Wrikken 2013-04-26 01:19:28

+0

這不是shell。變量不會在代碼中擴展爲它們的(字符串)內容。 – michaelb958 2013-04-26 01:20:40

回答

1

這是無效的語法。將$timeZone更改爲一個整數並將其添加到time()

$timeZone = -3600; 
$date = date('His', time() + $timeZone); 
echo $date; 

See a demo

0

您不能在字符串中嵌入二進制運算符,並期望它們執行。你需要這樣做:

<?php 
$timeZone = -3600; 
$date = date('His', time() + $timeZone); 
echo $date; 
?> 
+0

這不是一個二元運算符,它是一個算術運算符。但是同樣的原則適用。 :) – Nerdwood 2013-04-26 01:20:15

+0

@Nerdwood - 去google吧 – 2013-04-26 01:22:21

+1

你呢? [PHP運營商](http://php.net/manual/en/language.operators.php) – Nerdwood 2013-04-26 01:24:33