为什么会有所不同?

时间:2009-11-11 08:00:10

标签: php date

echo date("w",strtotime(date("Y-m-d")));
echo date("w",strtotime(date("Y年m月d日")));

将其保存为utf8。您会看到第二个比第一个更大。

4 个答案:

答案 0 :(得分:2)

面膜,

很可能是因为strtotime无法正确解析日语格式化日期。

在我看来,通过阅读文档,它将接受使用-格式化的日期,但未明确说明。

尝试var_dump(strtotime(date("Y年m月d日"));false,就像文档中strtotime似乎无法解析它一样。

所以约会适用false,但不会给出相同的结果。

答案 1 :(得分:2)

如果“更大”意味着“它使用更多字节”,那么UTF8就是一个具有可变字符大小的编码。 A - 字符将使用一个字节进行编码,而Year将使用至少两个进行编码。见这里:http://en.wikipedia.org/wiki/Utf8

答案 2 :(得分:1)

主要问题是strtotime是以美国格式开出的有效日期(在此处http://php.net/manual/en/function.strtotime.php}

要解决此问题,您可以使用strftime函数

    echo date("w",strftime(date("Y年m月d日")));
    echo date("w",strftime(date("Y-m-d")));

答案 3 :(得分:0)

当用UTF-8表示时,亚洲字符占用2个或更多字节,而破折号只占用一个字节。