PHP DateTime参数中的区分大小写

时间:2015-06-02 14:17:31

标签: php datetime case-sensitive

我使用createFromFormat()方法创建DateTime对象。如果format参数的字符串区分大小写,那么我就无法找到它,而非字母参数的字符串则是非数字部分。我的问题是关于这个问题 - 是DateTime :: createFromFormat区分大小写的字符串参数吗?

E.g。

这是:

.info

相当于:

DateTime::createFromFormat('M', 'May');
DateTime::createFromFormat('A', 'am');

@Edit:

我知道我应该清楚问题的目的。文档中明确说明了规则 。测试显而易见,但不显示系统/版本等之间的一致性,这在未指定时是有问题的。我问我是否遗漏了任何可以证明PHP如何在这里工作的东西。谢谢大家的时间。

3 个答案:

答案 0 :(得分:2)

正如@Marc B所说。

  1. source string传递isn't case sensitive的第二个参数。

  2. format argument characters的第一个参数是case sensitive

  3. 一个非常简单的例子: -

    <?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 stringcase in-sensitive。第三个是打印而第四个没有打印,因为format argument characterscase 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手册