如何使用PHP获取特定日期的日期?

55

我想获取10月22日是星期几(周日、周一...)。我该怎么做?


https://dev59.com/N0jSa4cB1Zd3GeqPDTjl - karim79
5个回答

139
你可以使用date函数。我正在使用strtotime来获取那一天的时间戳;还有其他解决方案,比如mktime
例如,使用'D'修饰符,可以得到三个字母的文本表示:
$timestamp = strtotime('2009-10-22');

$day = date('D', $timestamp);
var_dump($day);

你会得到:
string 'Thu' (length=3)

使用'l'修饰符,可以得到完整的文本表示方式。
$day = date('l', $timestamp);
var_dump($day);

你得到的是:
string 'Thursday' (length=8)

或者使用 'w' 修饰符,以获取一周中的日期 (0 到 6,0 代表星期日,6 代表星期六)
$day = date('w', $timestamp);
var_dump($day);

你将获得:
string '4' (length=1)

3
嘿,Pascal,感谢你六年前发布的内容。由于我刚接触PHP,这仍然对我有帮助。祝你有美好的一天! - user4051844

27
$date = '2014-02-25';
date('D', strtotime($date));

6
为何不使用date('l', strtotime($date)),因为OP要求以完整文本形式输出*Sunday, Monday ...*。 - 4 Leave Cover

9
$datetime = DateTime::createFromFormat('Ymd', '20151102');

echo $datetime->format('D');

1
虽然这段代码片段可能解决了问题,但包括解释真的有助于提高您的帖子质量。请记住,您正在为未来的读者回答问题,而这些人可能不知道您的代码建议原因。 - Bono

8
$date = strtotime('2016-2-3');
$date = date('l', $date);
var_dump($date)

(我添加了格式“l”,以便返回完整的日期名称)


当日期格式不同时,这并不能帮助你,例如 d/m/Y => 10/05/2021。如果我们使用这样的日期格式,那么它会给出错误的输出。 - Mayank Dudakiya

4
$date = '2009-10-22';
$sepparator = '-';
$parts = explode($sepparator, $date);
$dayForDate = date("l", mktime(0, 0, 0, $parts[1], $parts[2], $parts[0]));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接