我使用createFromFormat()方法创建DateTime对象。如果format参数的字符串区分大小写,那么我就无法找到它,而非字母参数的字符串则是非数字部分。我的问题是关于这个问题 - 是DateTime :: createFromFormat区分大小写的字符串参数吗?
E.g。
这是:
.info
相当于:
DateTime::createFromFormat('M', 'May');
DateTime::createFromFormat('A', 'am');
@Edit:
我知道我应该清楚问题的目的。文档中明确说明了规则 。测试显而易见,但不显示系统/版本等之间的一致性,这在未指定时是有问题的。我问我是否遗漏了任何可以证明PHP如何在这里工作的东西。谢谢大家的时间。
答案 0 :(得分:2)
正如@Marc B所说。
source string
传递isn't case sensitive
的第二个参数。
format argument characters
的第一个参数是case sensitive
。
一个非常简单的例子: -
<?php
echo "<pre/>";print_r(DateTime::createFromFormat('M', 'May'));
echo "<pre/>";print_r(DateTime::createFromFormat('A', 'am'));
echo "<pre/>";print_r(DateTime::createFromFormat('M', 'may'));
echo "<pre/>";print_r(DateTime::createFromFormat('A', 'AM'));
?>
<?php
echo "<pre/>";print_r(DateTime::createFromFormat('M', 'May'));
echo "<pre/>";print_r(DateTime::createFromFormat('A', 'am'));
echo "<pre/>";print_r(DateTime::createFromFormat('m', 'may'));
echo "<pre/>";print_r(DateTime::createFromFormat('a', 'AM'));
?>
输出: - here
注意: - 正如您所看到的,前两个没有区别,因为source string
是case in-sensitive
。第三个是打印而第四个没有打印,因为format argument characters
是case sensitive
。
检查am / pm表示法以及如何使用它: - http://prntscr.com/7c9esb
答案 1 :(得分:1)
是的,它不区分大小写。
$a = DateTime::createFromFormat('M', 'May');
$b = DateTime::createFromFormat('M', 'may');
var_dump($a == $b); //True
答案 2 :(得分:0)
a Lowercase Ante meridiem and Post meridiem am or pm
A Uppercase Ante meridiem and Post meridiem AM or PM
请参阅此here
的PHP手册