【发布时间】:2010-10-19 20:02:01
【问题描述】:
我对 php 中的日期函数有疑问。如果我以“d.m.y”格式提供字符串,例如“01.01.01”,它会呈现为今天的日期,这意味着 php 会感到困惑。
我找到了:
注意:
“日、月和两位数的年份,带点或制表符”格式(dd [.\t] mm "." yy) 仅适用于 61(含)到 99 的年份 (含)- 在那些年份之外,时间格式“HH [.:] MM [.:] SS”有 优先级。
开启:php.net site
如何覆盖此行为?
我知道 date_create_from_format 函数,如果我知道输入将始终采用“d.m.y”格式,它会正常工作,但它不会。
更新 1:
代码
$date = new DateTime('01.01.01');
echo $date->format('Y-m-d');
输出 2010-10-19,我想要 2001-01-01。
【问题讨论】:
-
为什么要用这么多词来描述你的所作所为?为什么不是一行实际代码? date() 函数与格式化字符串无关。所以,整个问题毫无意义。
-
另外,为了记录,您的“dd.mm.yy”日期掩码将打印两次日、月和年。正确的掩码可能是“d.m.y”。
-
OP 有一个日期
01.01.01并希望从中生成一个时间戳。这不会自动工作,因为strtotime使01.01设置时间而不是日期。 -
@Chris Henry:在 unix 日期格式之外,用符号
d、m、y、h、m和 @987654331 来描述格式是很常见的@ 这些字符的数量决定了渲染。例如,yy是两位数年份,yyyy是四位数年份,d是非零填充日,dd是零填充日。