PHP:帮助这个日期格式
作者:互联网
我有一个使用CodeIgniter构建的应用程序.我在SQL Server DB中有记录有datetime字段.
我从m / d / Y中输入文本字段的日期查询这些记录.这对应于db中的日期格式.
不幸的是我在英国!所以我想输入日期,如d / m / Y.所以我需要捕获它,将其格式化为适当的格式然后验证它.
这是用于格式化的代码:
$datestring = "%m/%d/%Y";
if(isset ($_POST['from_date']) AND isset ($_POST['to_date'])){
$from = mdate($datestring, strtotime($_POST['from_date']));
$to = mdate($datestring, strtotime($_POST['to_date']));
我正在使用CI日期帮助器中的mdate,但我认为它与date()几乎相同.
如果我输入数据13/12/2010,则发布表单并转储它出来的新日期
string(10) "02/06/2011"
这是怎么发生的?
有人能伸出援助之手吗? :d
比利
解决方法:
答案是欧洲日期格式使用短划线而不是斜线.
根据manual:
Note:
Dates in the m/d/y or d-m-y formats
are disambiguated by looking at the
separator between the various
components: if the separator is a
slash (/), then the American m/d/y is
assumed; whereas if the separator is a
dash (-) or a dot (.), then the
European d-m-y format is assumed.
使用正确的格式就像一个魅力:
// American format
//
$_POST['from_date'] = "02/06/2011";
$yankeeTimestamp = strtotime($_POST['from_date']);
// European format
//
$_POST['from_date'] = "06-02-2011";
$euroTimestamp = strtotime($_POST['from_date']);
echo date("m/d/Y", $yankeeTimestamp); // returns 02/06/2011
echo date("m/d/Y", $euroTimestamp); // returns 02/06/2011
标签:php,datetime,codeigniter,date-format 来源: https://codeday.me/bug/20191008/1874021.html