我希望我的用户能够日期格式更改为为所欲为:你如何验证日期格式?
$dateformat = $_POST['format'];
$datestamp = date($dateformat,$timestamp);
如何检查是否$dateformat
是正确有效的日期格式字符串?
我希望我的用户能够日期格式更改为为所欲为:你如何验证日期格式?
$dateformat = $_POST['format'];
$datestamp = date($dateformat,$timestamp);
如何检查是否$dateformat
是正确有效的日期格式字符串?
我建议您向用户提供各种date格式的选择下拉列表,然后将其存储在数据库中。然后,您可以将他们选择的格式插入到date()
函数的第一个参数中。
看看Zend_Date,但不知道将06-03-2012解释为6月3日或6月3日,这是不可能的。
你知道吗? 12年12月12日的日期,是欧洲人和美国人可以谈谈天没有误会;-)
if(strtotime($_POST['format']) !== FALSE)
{
echo 'valid date';
}
else
{
echo 'invalid date';
}
,但不会对日期有工作一年> 2048不会在当前的PHP定义
checkdate()会告诉你这个日期是否可以被解析,你应该决定坚持一定的格式:
strtotime()会让你知道,如果一个日期字符串可以被解析 - 你可以通过它的任何字符串。如果日期无法解析,则函数返回false。
附注:我不会让用户选择如何输入日期。这对你来说会很复杂,显然 - 也是作为用户,我会问自己我应该如何输入日期,因为大多数用户将被用于指示日期。为什么不为他们提供年,月和日期的简单下拉菜单,然后在checkdate()中使用这三个参数?
这里是一个正则表达式实现:
$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";
}
它假定空间char和破折号字符是允许的。
它指定此处所列标志:http://php.net/manual/en/datetime.formats.date.php
我知道,我只是想知道如果PHP函数建立这个,我找不到。可能与try/catch? – user962449
你应该使用正则表达式。您还可以尝试使用'$ datestamp = strototime($ _ POST ['format']);' – Kermit
这取决于您如何定义日期格式。 – samayo