فهرست منبع

[HttpFoundation] fixed date format for HTTP headers (format must be RFC1123, not RFC2822 -- the difference is that RFC1123 dates always use GMT for the timezone)

Fabien Potencier 14 سال پیش
والد
کامیت
c448429e62
1فایلهای تغییر یافته به همراه8 افزوده شده و 4 حذف شده
  1. 8 4
      src/Symfony/Component/HttpFoundation/Response.php

+ 8 - 4
src/Symfony/Component/HttpFoundation/Response.php

@@ -317,8 +317,8 @@ class Response
     public function getDate()
     {
         if (null === $date = $this->headers->getDate('Date')) {
-            $date = new \DateTime();
-            $this->headers->set('Date', $date->format(DATE_RFC2822));
+            $date = new \DateTime(null, new \DateTimeZone('UTC'));
+            $this->headers->set('Date', $date->format('D, d M Y H:i:s').' GMT');
         }
 
         return $date;
@@ -370,7 +370,9 @@ class Response
         if (null === $date) {
             $this->headers->delete('Expires');
         } else {
-            $this->headers->set('Expires', $date->format(DATE_RFC2822));
+            $date = clone $date;
+            $date->setTimezone(new \DateTimeZone('UTC'));
+            $this->headers->set('Expires', $date->format('D, d M Y H:i:s').' GMT');
         }
     }
 
@@ -489,7 +491,9 @@ class Response
         if (null === $date) {
             $this->headers->delete('Last-Modified');
         } else {
-            $this->headers->set('Last-Modified', $date->format(DATE_RFC2822));
+            $date = clone $date;
+            $date->setTimezone(new \DateTimeZone('UTC'));
+            $this->headers->set('Last-Modified', $date->format('D, d M Y H:i:s').' GMT');
         }
     }