我是php新手并需要一些帮助,我正在尝试接受用户输入并对其进行格式化,以便输出显示该月的最后一天。这是我到目前为止所做的:
<?php
//form for user-input
echo "<form name='form' method='post' action='array.php'>";
echo "<p>Enter Date in ' Month/Day/Year ' format<p>";
echo "<input type='text' id='date-input' name='date-input' placeholder='Enter date' />";
echo "</form>";
//grab user-input
$input=$_POST["date-input"];
//output in correct format
echo $input->format("m/t/Y");
?>
当我只有echo输入变量而没有格式化函数和日期格式时,它会显示用户输入的内容,但是它现在是如何设置的;没有任何显示,我得到这一行:
Fatal error: Call to a member function format() on string in C:\xampp\htdocs\php-sessions\session-3\array.php on line 190
第190行是我的回音输入行。
答案 0 :(得分:2)
试试这个。您可能需要先从输入字符串创建日期。使用createFromFormat
$date = DateTime::createFromFormat('m/d/Y', $input);
echo $date->format('m/t/Y');
注意:请记住在所有日期时间函数中也使用timezone参数。
答案 1 :(得分:0)
像replace
//output in correct format
echo $input->format("m/t/Y");
与
//output in correct format
echo date("m/d/Y",strtotime($input));
答案 2 :(得分:0)
也许符合您的要求,
<?php
$date = "2040-11-23";
$Year = DateTime::createFromFormat("Y-m-d", $date)->format("Y");
$YearWithDay = DateTime::createFromFormat("Y-m-d", $date)->format(" Y-m, t \d\a\y.");
function is_leap_year($year)
{
return ((($year % 4) == 0) && ((($year % 100) != 0) || (($year % 400) == 0)));
}
echo $YearWithDay."<br>";
echo (is_leap_year($Year))?"This Year is Leap year": "";
?>
<强>输出强>
2040-11, 30 day.
This Year is Leap year