我希望我的用户能够将日期格式更改为他们喜欢的内容:
$dateformat = $_POST['format'];
$datestamp = date($dateformat,$timestamp);
如何检查$dateformat
是否是正确的有效日期格式字符串?
答案 0 :(得分:1)
if( strtotime($_POST['format']) !== FALSE)
{
echo 'valid date';
}
else
{
echo 'invalid date';
}
但是对于有年份的日期> 2048未在当前PHP中定义
答案 1 :(得分:1)
checkdate()会告诉您是否可以解析日期:
strtotime()会告诉您是否可以解析日期字符串 - 您可以将任何字符串传递给它。如果无法解析日期,则该函数返回false。
作为旁注:我不会让用户选择如何输入日期。这显然会让你变得非常复杂 - 但是作为用户,我会问自己应该如何输入日期,因为大多数用户将习惯于关于日期的指示。为什么不为他们提供年,月,日的简单下拉,然后将这三个参数与checkdate()一起使用?
答案 2 :(得分:0)
我建议您为用户提供各种date格式的精选下拉菜单,然后将其存储在数据库中。然后,您可以拉出所选格式并将其插入date()
函数的第一个参数。
答案 3 :(得分:0)
了解Zend_Date,但不知道将06-03-2012解释为6月3日或6月3日是不可能的。
你知道吗? 12/12/12是日期,欧洲人和美国人可以在没有误解的情况下谈论这一天; - )答案 4 :(得分:0)
这是一个正则表达式实现:
$input = 'M d Y';
if(preg_match('#(dd|DD|m|M|mm|MM|y|yy|YY|-|\s)+#', $input)) {
$valid = true;
print date($input);
} else {
print "invalid date format";
}
它假定允许使用空格字符和短划线字符。
它指定了此处列出的标志:http://php.net/manual/en/datetime.formats.date.php