Ric*_*ard 5 php date strtotime
我有一个凭证系统,我可以用时间输入日期或日期.应该允许所有有效格式,例如:
如果我有代金券的开始日期,我没问题,但如果我有结束日期,这是一个问题.我strtotime
用来将用户输入转换为UNIX时间戳.
如果您只输入日期作为结束日期,则应该是使用日期的结束日期.像这样:
01.01.2016 -> 01.01.2016 23:59:59 -> 1451689199
Run Code Online (Sandbox Code Playgroud)
但是 - 这是我的问题 - strtotime
当然为01.01.2016
和返回相同的时间戳01.01.2016 00:00:00
.当用户输入时,当然应该使用这个时间.
01.01.2016
1451602800
-> should go to 1451689199
01.01.2016 00:00:00
1451602800
-> is correct
01.01.2016 23:59:59
1451689199
-> is correct
Run Code Online (Sandbox Code Playgroud)
我需要有可能检查字符串 - 由strtotime
- 转换- 是否有时间显式.我搜索了一个没有成功的函数,即使是DateTime
类没有这方法(hasTime()
或类似的东西).
正如我之前所说,strtotime
此功能也应支持所有日期/时间格式支持.
这个问题不重复!我想检查是否有明确指定的时间.应该是重复的问题是PHP初学者的基本问题,与此问题完全无关!
我会在调用 strtotime 之前测试字符串的长度并添加23:59:59
:
$dates = array('01.01.2016','01.01.2016 23:59:59','01.01.2016 10:25:30');
foreach($dates as $date) {
echo "date=$date\n";
if (strlen($date) > 10) {
echo strtotime($date),"\n";
} else {
echo strtotime($date . ' 23:59:59'),"\n";
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
date=01.01.2016
1451689199
date=01.01.2016 23:59:59
1451689199
date=01.01.2016 10:25:30
1451640330
Run Code Online (Sandbox Code Playgroud)