将日期转换为日期名称,例如周一,周二,周三

use*_*027 12 php

我有一个变量,以下列格式输出日期:

201308131830
Run Code Online (Sandbox Code Playgroud)

这是2013年8月13日 - 18:30

我正在使用它来检索日期名称但它错误的日子:

$dayname = date('D', strtotime($longdate));
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?

Joh*_*nde 22

当您以非标准格式存储日期和时间时会发生这种情况.与他们合作成为问题.

$datetime = DateTime::createFromFormat('YmdHi', '201308131830');
echo $datetime->format('D');
Run Code Online (Sandbox Code Playgroud)

看到它在行动


小智 13

你的代码适合我

$date = '15-12-2016';
$nameOfDay = date('D', strtotime($date));
echo $nameOfDay;
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢名称的完整文本表示,请使用l而不是D.


Ray*_* Pk 6

echo date('D', strtotime($date));
echo date('l', strtotime($date));
Run Code Online (Sandbox Code Playgroud)

结果

Tue
Tuesday
Run Code Online (Sandbox Code Playgroud)

  • 不要使用 strtotime()。亚洲和美国的日期格式可能会被错误解析。例如,“1/2/2019”在新加坡可以是“1st Feb 2019”,但在美国可以是“2nd Jan 2019”。使用 Date() 对象正确创建日期。 (2认同)

ARN*_*ARN 6

对于其他语言,使用星期几来识别日期名称

\n\n

例如,对于波斯语,请使用以下代码

\n\n
$dayName = getDayName(date(\'w\', strtotime(\'2019-11-14\')));\n\n    function getDayName($dayOfWeek) {\n\n        switch ($dayOfWeek){\n            case 6:\n                return \'\xd8\xb4\xd9\x86\xd8\xa8\xd9\x87\';\n            case 0:\n                return \'\xdb\x8c\xda\xa9 \xd8\xb4\xd9\x86\xd8\xa8\xd9\x87\';\n            case 1:\n                return \'\xd8\xaf\xd9\x88 \xd8\xb4\xd9\x86\xd8\xa8\xd9\x87\';\n            case 2:\n                return \'\xd8\xb3\xd9\x87 \xd8\xb4\xd9\x86\xd8\xa8\xd9\x87\';\n            case 3:\n                return \'\xda\x86\xd9\x87\xd8\xa7\xd8\xb1 \xd8\xb4\xd9\x86\xd8\xa8\xd9\x87\';\n            case 4:\n                return \'\xd9\xbe\xd9\x86\xd8\xac \xd8\xb4\xd9\x86\xd8\xa8\xd9\x87\';\n            case 5:\n                return \'\xd8\xac\xd9\x85\xd8\xb9\xd9\x87\';\n            default:\n                return \'\';\n        }\n\n    }\n
Run Code Online (Sandbox Code Playgroud)\n\n

更多信息 : https: //www.php.net/manual/en/function.date.php

\n