2015-03-31 23 views
0

所以我有這個代碼創建一個下拉框來選擇一個月份,另一個下拉框來選擇一天,然後在一年中輸入一個文本字段。我的問題是接下來在php中做什麼,以便能夠選擇某個月份,每天和每年,當我點擊「計算」時,它會顯示當年的哪一天?年度日程

因此,例如,如果我選擇2015年1月4日,當我點擊計算時,我希望它顯示4,因爲它是日曆年的第4天。我怎麼做?

<form action="calc.php" method="post"> 
Month: <select name="month"> 
<option value="january">January</option> 
<option value="february">February</option> 
<option value="march">March</option> 
<option value="april">April</option> 
<option value="may">May</option> 
<option value="june">June</option> 
<option value="july">july</option> 
<option value="august">August</option> 
<option value="september">September</option> 
<option value="october">October</option> 
<option value="november">November</option> 
<option value="december">December</option> 
</select> 

Day: <select name="day"> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
<option value="6">6</option> 
<option value="7">7</option> 
<option value="8">8</option> 
<option value="9">9</option> 
<option value="10">10</option> 
<option value="11">11</option> 
<option value="12">12</option> 
<option value="13">13</option> 
<option value="14">14</option> 
<option value="15">15</option> 
<option value="16">16</option> 
<option value="17">17</option> 
<option value="18">18</option> 
<option value="19">19</option> 
<option value="20">20</option> 
<option value="21">21</option> 
<option value="22">22</option> 
<option value="23">23</option> 
<option value="24">24</option> 
<option value="25">25</option> 
<option value="26">26</option> 
<option value="27">27</option> 
<option value="28">28</option> 
<option value="29">29</option> 
<option value="30">30</option> 
<option value="31">31</option> 
</select> 

<input name="entry" type="text" size="10" placeholder="Year"> 

<input type="submit" value="Calculate"> 
</form> 

回答

1

您可以使用date

echo date("z", strtotime('2015-01-04')); 

但它返回:

一年的天數(從0開始)

所以你需要添加1結果。

+0

有沒有辦法把它的代碼,以便不不管我選擇什麼日期,都會給那個特定日期的日子?您提供的代碼僅適用於1月4日。 – Seth 2015-03-31 18:31:27

+0

@Seth你不知道如何接受POST值並使用字符串連接構建它們?這些是基本的:'date('z',strtotime($ _ POST ['month']。''。$ _ POST ['day']。''。$ _ POST ['year']))'假設任何發送的值是一個有效的日期。 – sjagr 2015-03-31 18:38:44

0

您可以嘗試下面的代碼來獲取日期。在這裏我使用相同的頁面的帖子。如果你使用的是其他網頁張貼(我的意思是操作頁面)使用該文件中的PHP,

HTML

<form action="#" method="post"> 
Month: <select name="month"> 
<option value="01">January</option> 
<option value="02">February</option> 
<option value="03">March</option> 
<option value="04">April</option> 
<option value="05">May</option> 
<option value="06">June</option> 
<option value="07">july</option> 
<option value="08">August</option> 
<option value="09">September</option> 
<option value="10">October</option> 
<option value="11">November</option> 
<option value="12">December</option> 
</select> 

Day: <select name="day"> 
<option value="01">1</option> 
<option value="02">2</option> 
<option value="03">3</option> 
<option value="04">4</option> 
<option value="05">5</option> 
<option value="06">6</option> 
<option value="07">7</option> 
<option value="08">8</option> 
<option value="09">9</option> 
<option value="10">10</option> 
<option value="11">11</option> 
<option value="12">12</option> 
<option value="13">13</option> 
<option value="14">14</option> 
<option value="15">15</option> 
<option value="16">16</option> 
<option value="17">17</option> 
<option value="18">18</option> 
<option value="19">19</option> 
<option value="20">20</option> 
<option value="21">21</option> 
<option value="22">22</option> 
<option value="23">23</option> 
<option value="24">24</option> 
<option value="25">25</option> 
<option value="26">26</option> 
<option value="27">27</option> 
<option value="28">28</option> 
<option value="29">29</option> 
<option value="30">30</option> 
<option value="31">31</option> 
</select> 

<input name="year" type="text" size="10" placeholder="Year"> 

<input type="submit" name="submit" value="Calculate"> 
</form> 

PHP

<?php 
if(isset($_POST['submit'])) 
{ 
    $date = $_POST['year'].'-'.$_POST['month'].'-'.$_POST['day']; 
    echo date("l", strtotime($date)); 
} 
?>