2016-07-02 23 views
-1
echo $current_year = date("Y").'<br><br>'; 
echo $string_year = strftime("%Y", strtotime($current_year)); 

我想將date(Year)更改爲字符串,但此代碼顯示輸出爲1970。我不明白爲什麼是1970如何更改字符串php中的日期類型年?

如何使當年爲2016。 請幫忙。

+0

這是您的服務器的問題,因爲日期(「Y」);'應該返回2016 – Hearner

+0

爲什麼複雜的東西?爲什麼不只是'echo $ string_year = strftime(「%Y」);'而不是?當你到了1970年,這意味着該日期無效,所以它返回01-01-1970。 – Qirel

+0

請解釋一下你在第一個回聲和第二個回聲中看到了什麼?你從strtotime('2016')期待什麼? – PaulH

回答

0

整個日期應該在strtotime()內傳遞,而不僅僅是一年。或者您可以簡單地將時間戳作爲第二個參數。

試試這個:

echo $string_year = strftime("%Y", time()); 

OR

echo $string_year = strftime("%Y", strtotime("now")); 
1

你的問題是,strftime功能需要一個timestamp作爲第二PARAM,但你傳遞一個字符串。

=> string strftime (string $format [, int $timestamp = time() ]) 

因此,當你通過date("Y").'<br>'技術上這不是一個timestamp了,這將默認爲1年,我們的PHP被1970年

工作在做

echo $current_year = date("Y"); 
echo $string_year = strftime("%Y", strtotime($current_year)); 

我得到2016但老實說,我不明白你爲什麼要求這一年,然後再將它改爲一年,因爲$current_year$string_year都是字符串。

echo $current_year = date("Y"); 
echo $string_year = strftime("%Y", strtotime($current_year)); 

echo gettype($current_year); //Output: string 
echo gettype($string_year); //Output: string