Stackoverflow社區。最近我只有獨特的經驗。經過Google,試用了幾個小時,但仍未找到解決方案。輸入和期望的輸出其實很簡單,但棘手,我只是不知道如何正確編碼。HTML5&PHP:從輸入值中獲取並轉換MONTH輸入類型值到STRING和減去一個月
那麼,我會定義的要求。
說明和要求:
我有一個輸入字段。這個輸入字段類型是MONTH(不是DATE)。所以基本上這個輸入字段應該只產生年份和月份,與產生完整日期的DATE輸入類型不同。
我想在之前轉換爲STRING之前在此MONTH輸入字段中回顯值(例如:「2016-7」採用STRING格式),並且還生成諸如「2016年7月」之類的內容。
此MONTH格式與DATE格式類似,但通常與DATE格式一起使用的腳本不能與MONTH格式一起使用。這讓我想知道,我好奇爲什麼。
實驗:
對於基本的輸入類型一個月,我使用這個腳本。
<input type="month" name="monthTransaction" value="<?php echo date("Y-m") ?>"/>
然後我試着這樣迴應它。
$month = mysql_real_escape_string($_POST['monthTransaction']);
$newmonth = date('Y-m', strtotime(str_replace('-', '/', $tr)));
echo $month; // Probably STRING format (i need further explanation)
echo $newmonth; // Probably DATE format (i need further explanation)
這畢竟不行。但我試着與DATE類型的輸入字段,它的工作。 DATE類型格式的迴音很好。
從這段代碼我知道實際上strtotime不會將DATE轉換爲字符串。我不太瞭解它,但它可以很好地運行(可以回顯)DATE格式,但不適用於MONTH格式。
如果您可以告訴我如何將MONTH輸入類型轉換爲STRING,那將會非常棒,因爲我可以從中學習。
所需的輸出:
- 將在基本格式打印,如 「2016-07」
- 將先進的格式打印,如 「2016年7月」
=== ================================================== ====
第二個問題(減去一個月的輸入值):
那實際上是另一個與此相關的問題。
第二個問題說明及要求:
- 其實我是想獲得MONTH輸入字段減一(-1)一個月的輸入值的輸入值。
第二個問題所需的輸出:
- 所以,如果你輸入 「2016-07」 爲例,它會給 「2016-06」 等。
DATE格式是普通的,但MONTH格式似乎在挑戰我。任何人都知道如何解決這個問題?正如我所說的簡單但棘手。順便說一句,謝謝你提前。
嘗試過,並且工作得很好。非常感謝你,它是快速響應,我很高興能使它工作。我將使用此代碼作爲我未來編碼的參考。我不熟悉閱讀PHP和MySQL的直接參考,因爲我的大學不是最新的學習PHP和MySQL。再一次感謝你。 –
btw我可以問更多的問題嗎?可以說我想要它來到一天而不是一個月,下面的代碼是否正確? $ day = mysql_real_escape_string($ _ POST ['dayTransaction']); $ temp = new DateTime($ day .'-01'); $ newday = $ temp-> format('Y-m-d'); $ newDayName = $ temp-> format('D F Y'); $ newDayMinusOne = $ temp-> sub(new DateInterval('P1D')) - > format('Y-m-d'); $ newDayMinusOneName = $ temp-> sub(new DateInterval('P1D')) - > format('D F Y'); –
@KeshiaAngelina如果你的輸入是一個包含日期的日期(即'2016-07-28'),那麼你不必在創建DateTime時添加'-01'(因爲'-01'模擬當天)'$ temp = new DateTime($ day);'。否則這將工作。 – MadMarc