31

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

201308131830

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

我正在使用它来检索日期名称,但它得到了错误的日期:

$dayname = date('D', strtotime($longdate));

知道我做错了什么吗?

4

9 回答 9

36

当您以非标准格式存储日期和时间时,就会发生这种情况。与他们合作变得有问题。

$datetime = DateTime::createFromFormat('YmdHi', '201308131830');
echo $datetime->format('D');

看到它在行动

于 2013-03-13T14:51:52.300 回答
32
echo date('D', strtotime($date));
echo date('l', strtotime($date));

结果

Tue
Tuesday
于 2018-05-08T07:56:47.337 回答
14

你的代码对我有用

$date = '15-12-2016';
$nameOfDay = date('D', strtotime($date));
echo $nameOfDay;

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

于 2016-12-18T01:31:21.527 回答
4

你的代码对我有用。

$input = 201308131830; 
echo date("Y-M-d H:i:s",strtotime($input)) . "\n";
echo date("D", strtotime($input)) . "\n";

输出:

2013-Aug-13 18:30:00
Tue

但是,如果您201308131830作为数字传递,则它比 32 位整数表示的大 50 到 100 倍。[取决于您的系统的具体实现] 如果您的服务器/PHP 版本不支持 64 位整数,那么该数字将溢出并可能最终输出为负数并date()默认为Jan 1, 1970 00:00:00 GMT.

确保您从中检索此数据的任何来源都将该日期作为字符串返回,并将其保留为字符串。

于 2013-03-13T15:01:13.510 回答
4

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

例如对于波斯语使用下面的代码

$dayName = getDayName(date('w', strtotime('2019-11-14')));

    function getDayName($dayOfWeek) {

        switch ($dayOfWeek){
            case 6:
                return 'شنبه';
            case 0:
                return 'یک شنبه';
            case 1:
                return 'دو شنبه';
            case 2:
                return 'سه شنبه';
            case 3:
                return 'چهار شنبه';
            case 4:
                return 'پنج شنبه';
            case 5:
                return 'جمعه';
            default:
                return '';
        }

    }

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

于 2019-11-14T18:59:11.017 回答
2

似乎您可以通过以下方式使用 date() 和小写“L”格式字符:

$weekday_name = date("l", $timestamp);

对我来说效果很好,这里是文档: http: //php.net/manual/en/function.date.php

于 2017-10-04T19:11:21.050 回答
2

带有月份和年份的非常简单的简短工作日名称

echo date('D, d-M-y');

输出

Tue, 16-Feb-21

根据我的要求

return $item->start_time->format("D, d-M");

输出

Tue, 16-Feb
于 2021-02-16T17:45:42.970 回答
1

您不能使用strtotime,因为您的时间格式不在PHP 支持的日期和时间格式范围内。

因此,您必须首先使用createFromFormat 函数创建一个有效的日期格式。

//creating a valid date format
$newDate = DateTime::createFromFormat('YmdHi', $longdate);

//formating the date as we want
$finalDate = $newDate->format('D'); 
于 2013-03-13T14:52:20.353 回答
0
$date = new \DateTime("now", new \DateTimeZone('Asia/Calcutta') );
         $day = $date->format('D');
         $weekendnaame = weekedName();
         $weekid =$weekendnaame[$day];
          $dayname = 0;
        $weekiarray = weekendArray($weekid);
        foreach ($weekiarray as $key => $value) {
            if (in_array($value, $request->get('week_id')))
          {
            $dayname = $key+1;
            break;
          }
        }


weeknDate($dayname),

function weeked(){
  $week = array("1"=>"Sunday", "2"=>"Monday", "3"=>"Tuesday", "4"=>"Wednesday", "5"=>"Thursday", "6"=>"Friday", "7"=>"Saturday");
  return $week;
}
function weekendArray($day){
        $favcolor = $day;

switch ($favcolor) {
  case 1:
    $array = array(2,3,4,5,6,7,1);
    break;
  case 2:
    $array = array(3,4,5,6,7,1,2);
    break;
  case 3:
    $array = array(4,5,6,7,1,2,3);
    break;
    case 4:
    $array = array(5,6,7,1,2,3,4);
    break;
    case 5:
    $array = array(6,7,1,2,3,4,5);
    break;
    case 6:
    $array = array(7,1,2,3,4,5,6);
    break;
     case 7:
    $array = array(1,2,3,4,5,6,7);
    break;
  default:
    $array = array(1,2,3,4,5,6,7);
}
return  $array;
}
function weekedName(){
  $week = array("Sun"=>0,"Mun"=>1,"Tue"=>3,"Wed"=>4,"Thu"=>5,"Fri"=>6,"Sat"=>7);
  return $week;
}
于 2020-10-28T04:58:12.397 回答