[英]strtotime not working
我是PHP的新手,並試圖將注冊表單(在01/01/2011中的形式)中的日期轉換為Ymd,以便它可以存儲在數據庫中。
這是我的代碼,非常確定它之前有效,但現在已停止工作了。 有任何想法嗎?
$dateformat = $_POST['dob'];
$correctformat = date('Y-m-d',strtortime($dateformat));
我已經檢查了$_POST['dob']
打印的內容是正確的,但$correctformat
每次都打印1970-01-01
。
任何幫助將不勝感激。
謝謝
您可以使用DateTime :: createFromFormat (注意PHP 5> = 5.3.0)而不是strtotime
因為strtotime
接受m/d/Y
而不是d/m/Y
嘗試:
$dateformat = $_POST['dob'];
$correctformat = DateTime::createFromFormat('d/m/Y', $dateformat);
echo $correctformat->format('Y-m-d');
$currentformat = explode("/",$_POST['date']);
$newformat = $currentformat[2]."-".$currentformat[1]."-".$currentformat[0];
0.1。 你能告訴,看日期,如果有一個月或一天第一? 如果你不能 - 如何確定任何程序來確定實際的訂單?
0.2。 如果計划成為PHP用戶,此操作需要任何人必須學習的非常基本的字符串操作:
$chunks = explode("/",$_POST['date']);
$date = "$chunks[2]-$chunks[1]-$chunks[0]";
塊的順序取決於日期部分的實際順序
正如亞當所說,沒有strtortime()它應該是strtotime()
你真的用文字字符串'01 / 01/2011'測試了嗎? 我們中的一些人出生於1970年之前 - 這可能會造成一些混亂(strtotime()會產生32位的Unix時間)。
(注意strtotime使用mm / dd / yy [yy]的美學風格而不是歐洲慣例dd / mm / yy [yy]來解釋xx / xx / xx [xx]。
它刪除了拼寫錯誤:
[colinm@dev-sensor ~]$ php -q t.php
2011-01-01
[colinm@dev-sensor ~]$ cat t.php
<?php
print date('Y-m-d',strtotime('01/01/2011')) . "\n";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.