Ngày php sửa đổi ngày đầu tiên của tháng

Có một số niềm vui khi chụp ảnh trong Công viên Regent's. Chú chim đáng yêu này khá bối rối với thứ băng giá này. … https. //t. co/LBhLFb52JR

twitter — Ngày 19 tháng 1, 23. 06 UTC

  • tôi đi bộ 10. 9km trong 1h48m47s

    người chạy — ngày 19 tháng 1, 12. 51 UTC

  • Lấy tháng tiếp theo bằng PHP

    London, Vương quốc Anh

    Thứ sáu, ngày 08 tháng 01 năm 2010, ngày 09. 13 giờ GMT

    Người dùng PHP hết lần này đến lần khác phàn nàn rằng next month trong trình phân tích cú pháp chuỗi ngày của PHP không chuyển sang tháng tiếp theo mà thay vào đó chuyển sang tháng sau;

    modify( 'next month' );
    echo $d->format( 'F' ), "\n";
    ?>
    
    

    Đầu ra của tập lệnh nhỏ sẽ là

    format( 'F jS, Y' ), "\n";
    ?>
    
    
    0. Tháng 3 rõ ràng không theo sau tháng 1 vì tháng 2 ở giữa. Tuy nhiên, hành vi hiện tại là đúng. Điều sau đây xảy ra trong nội bộ

    • next month tăng số tháng (ban đầu là 1) lên một. Điều này làm cho ngày

      format( 'F jS, Y' ), "\n";
      ?>
      
      
      2

    • Tháng thứ hai (tháng 2) chỉ có 28 ngày trong năm 2010, vì vậy PHP tự động sửa lỗi này bằng cách tiếp tục đếm ngày từ ngày 1 tháng 2. Sau đó, bạn kết thúc vào ngày 3 tháng 3

    • Định dạng loại bỏ năm và ngày, dẫn đến kết quả là

      format( 'F jS, Y' ), "\n";
      ?>
      
      
      0

    Có thể dễ dàng nhận thấy điều này khi lặp lại ngày với định dạng ngày đầy đủ, định dạng này sẽ xuất ra

    format( 'F jS, Y' ), "\n";
    ?>
    
    
    4

    format( 'F jS, Y' ), "\n";
    ?>
    
    

    Để có được hành vi chính xác, bạn có thể sử dụng một số PHP 5. Chức năng mới của 3 giới thiệu khổ thơ thời gian tương đối

    format( 'F jS, Y' ), "\n";
    ?>
    
    
    5. Khổ thơ này có thể được sử dụng kết hợp với next month,
    format( 'F jS, Y' ), "\n";
    ?>
    
    
    7 hoặc
    format( 'F jS, Y' ), "\n";
    ?>
    
    
    8 để đi đến ngày đầu tiên của tháng được chỉ định. Thay vì next month từ ví dụ trước, chúng tôi sử dụng
    modify( 'first day of next month' );
    echo $d->format( 'F' ), "\n";
    ?>
    
    
    0 ở đây

    modify( 'first day of next month' );
    echo $d->format( 'F' ), "\n";
    ?>
    
    

    Tập lệnh này sẽ xuất chính xác

    modify( 'first day of next month' );
    echo $d->format( 'F' ), "\n";
    ?>
    
    
    1. Những điều sau đây xảy ra khi PHP xử lý đoạn thơ
    modify( 'first day of next month' );
    echo $d->format( 'F' ), "\n";
    ?>
    
    
    0 này

    • next month tăng số tháng (ban đầu là 1) lên một. Điều này làm cho ngày

      format( 'F jS, Y' ), "\n";
      ?>
      
      
      2

    • format( 'F jS, Y' ), "\n";
      ?>
      
      
      5 đặt số ngày thành 1, kết quả là ngày
      modify( 'first day of next month' );
      echo $d->format( 'F' ), "\n";
      ?>
      
      
      6

    • Định dạng loại bỏ năm và ngày, dẫn đến kết quả là

      modify( 'first day of next month' );
      echo $d->format( 'F' ), "\n";
      ?>
      
      
      1

    Bên cạnh

    format( 'F jS, Y' ), "\n";
    ?>
    
    
    5, có một
    modify( 'first day of next month' );
    echo $d->format( 'F' ), "\n";
    ?>
    
    
    9 tương đương để đi đến ngày cuối cùng của một tháng. Ví dụ sau minh họa điều này

    modify( 'last day of next month' );
    echo $d->format( 'F jS, Y' ), "\n";
    ?>
    
    

    Điều này xuất ra

    modify( 'last day of next month' );
    echo $d->format( 'F jS, Y' ), "\n";
    ?>
    
    
    0. Nội bộ sau đây xảy ra

    Ngày php sửa đổi ngày đầu tiên của tháng
    • next month tăng số tháng (ban đầu là 1) lên một. Điều này làm cho ngày

      modify( 'last day of next month' );
      echo $d->format( 'F jS, Y' ), "\n";
      ?>
      
      
      2

    • modify( 'first day of next month' );
      echo $d->format( 'F' ), "\n";
      ?>
      
      
      9 tăng số tháng lên một và đặt số ngày thành 0, kết quả là ngày
      modify( 'last day of next month' );
      echo $d->format( 'F jS, Y' ), "\n";
      ?>
      
      
      4

    • Sau đó, PHP sẽ tự động sửa số ngày không hợp lệ 0 bằng cách xóa một ngày khỏi tháng và bỏ qua ngày cuối cùng của tháng đó, kết quả là

      modify( 'last day of next month' );
      echo $d->format( 'F jS, Y' ), "\n";
      ?>
      
      
      5

    Tôi hy vọng điều này sẽ làm sáng tỏ một số hành vi xử lý Ngày/Giờ của PHP. Để biết thêm thông tin về Lập trình Ngày/Giờ với PHP, vui lòng tham khảo cuốn sách của tôi "php. Architect's Guide to Date and Time Programming" có sẵn trên Amazon

    Ngày php sửa đổi ngày đầu tiên của tháng

    liên kết rút gọn

    Bài viết này có sẵn một URL ngắn. https. //drck. tôi/otnmi-php-7q7

    Bình luận

    Anthony

    Thứ sáu, ngày 08 tháng 01 năm 2010, ngày 09. 44 UTC

    Điều gì xảy ra nếu bạn không thể sử dụng PHP 5. 3?

    Derick

    Thứ sáu, ngày 8 tháng 1 năm 2010, ngày 10. 03 UTC

    @Anthony. Trước hết, không cần sửa chữa, vì không có lỗi. Nhưng tất nhiên bạn có thể làm điều này trong các phiên bản PHP khác theo một cách khác. Với PHP5. 2 chẳng hạn

    setDate( $d->format( 'Y' ), $d->format( 'm' ), 1 );
    $d->modify( 'next month' );
    echo $d->format( 'F' ), "\n";
    ?>
    
    

    Dòng thứ ba (có

    modify( 'last day of next month' );
    echo $d->format( 'F jS, Y' ), "\n";
    ?>
    
    
    6 trên đó), sử dụng năm và tháng hiện tại và đặt ngày thành 1 trước khi chuyển sang tháng tiếp theo với cuộc gọi
    modify( 'last day of next month' );
    echo $d->format( 'F jS, Y' ), "\n";
    ?>
    
    
    7

    ken

    Thứ sáu, ngày 8 tháng 1 năm 2010, ngày 18. 26 UTC

    tôi có ý kiến ​​khác. Tôi không chắc nhóm PHP đã hút thuốc gì nữa, nhưng rõ ràng đó là một số thứ tuyệt vời

    Về mặt ngữ nghĩa, "tháng tới" NÊN, theo nghĩa đen, là tháng tới. Chuyện gì đã xảy ra với KISS? . Khi tôi nói với gia đình rằng tôi sẽ đến thăm họ vào "tháng tới", KHÔNG có sự nhầm lẫn về việc đó sẽ là tháng nào; . Hành vi mà bạn đang mô tả ở đây sẽ được mô tả đầy đủ hơn là "một tháng kể từ bây giờ"

    tôi yêu nó mặc dù. Đây là một ví dụ tuyệt vời khác về việc các nhà phát triển quá khoa trương vì lợi ích của họ; . Bạn có nhận ra bao nhiêu giờ lao động sẽ bị lãng phí (và theo đó là tiền), không chỉ bên ngoài nhóm PHP mà còn trong nhóm PHP, do 'không có lỗi' này không?

    Derick

    Thứ sáu, ngày 8 tháng 1 năm 2010, ngày 19. 03 UTC

    @Ken. Chà, chà, có vẻ như bạn biết tất cả mọi thứ nhỉ?. Đầu tiên một số sự thật

    1. Khổ thơ next month của PHP luôn hoạt động như thế này

    2. Khi tôi nói với gia đình rằng tôi sẽ ở đó next month Tôi thực sự phải nói với họ ngày nào trong tháng đó

    3. Hỗ trợ chuỗi tương đối không bao giờ có nghĩa là phù hợp với chính xác những gì mọi người nghĩ về ý nghĩa của chúng

    Mục tiêu của hỗ trợ chuỗi tương đối là cung cấp một ngôn ngữ phong phú và nhất quán. Và đó chính xác là những gì nó là. Bạn có thể không thích, nhưng bạn không thể tranh cãi rằng hành vi đó là không đúng. Nó đúng bởi vì nó rõ ràng đã được thiết kế như nó vốn có (tuân theo một số thông số kỹ thuật của GNU)

    PHP5. 3 thêm một phạm vi hoàn toàn mới của các khổ thơ chuỗi tương đối chỉ vì không phải lúc nào bạn cũng có thể diễn đạt ngày mà bạn muốn. Với đoạn thơ

    format( 'F jS, Y' ), "\n";
    ?>
    
    
    5 mới, giờ đây ít nhất bạn có thể đến được ngày mà bạn mong đợi

    ken

    Thứ sáu, ngày 8 tháng 1 năm 2010, ngày 19. 45 UTC

    1. Điều này không làm cho người dùng mới dễ dàng hơn

    2.

    3. Tôi có phải là người duy nhất nhìn thấy sự trớ trêu trong tuyên bố này?

    Derick, xin đừng hiểu sai ý tôi ở đây, tôi không cố xúc phạm bạn (và tôi xin lỗi nếu tôi có); . Rốt cuộc, tôi đã đăng ký qua RSS và sử dụng xdebug thường xuyên. Tuy nhiên, chính những thứ như thế này lại khiến PHP trở nên khó chịu

    voi

    Thứ sáu, ngày 8 tháng 1 năm 2010, ngày 20. 31 UTC

    Ken có lý. Ví dụ, hướng dẫn sử dụng strtotime có nội dung 'Parse about any textual datetime description'. Việc giải thích văn bản tiếng Anh của 'tháng tới' sẽ là tháng hai. Lý tưởng nhất là không có một ngày. Vì chúng ta không thể có ngày mà không có ngày (nhân tiện, tại sao chúng ta không thể? Con người có khả năng xử lý các biểu thức ngày ít hơn ngày), tôi sẽ nói 'weg van de minste verbazing' như chúng ta nói bằng tiếng Hà Lan

    Tái bút. nút gửi của bạn nói 'gửi' ;-)

    Rasmus

    Thứ sáu, ngày 8 tháng 1 năm 2010, ngày 23. 54 UTC

    Tôi tự hỏi liệu những người phàn nàn có nhận ra rằng đây không phải là thứ dành riêng cho PHP không. Bạn có lẽ nên đọc cái này

    Dù tốt hay xấu, đây là quy ước UNIX để cộng và trừ các khoảng thời gian (không chỉ tháng). Công cụ ngày dòng lệnh trên hộp UNIX của bạn hoạt động giống hệt nhau

    Micheal Stillwell

    Thứ bảy, ngày 09 tháng 01 năm 2010, ngày 01. 05 UTC

    SQLite cũng hoạt động theo cùng một cách

    sqlite> select datetime('2010-01-31', '+1 month');
    2010-03-03 00:00:00
    sqlite> select datetime('2010-01-31', 'start of month', '+1 month');
    2010-02-01 00:00:00
    
    

    The documentation also explains this quite well .

    Vincenzo

    Thứ bảy, ngày 09 tháng 01 năm 2010, ngày 01. 31 UTC

    chào mọi người

    @Derick. trong các bình luận bạn nói không cần sửa vì không có lỗi. Tuy nhiên, trong bài đăng bạn nói 'Để có được hành vi chính xác', ngụ ý rằng hành vi mặc định là sai. Dù sao, tôi chỉ là một người mô phạm

    @Tất cả các. Tôi thừa nhận nó là khó hiểu ngay từ cái nhìn đầu tiên. Developer suy cho cùng vẫn là con người

    Nhưng sau khi suy nghĩ một chút về nó, dù sao, tôi thấy hành vi "sửa đổi ('tháng tới')" đúng, bởi vì những gì nó đang làm là lấy ngày hiện tại (vì vậy ngày đầy đủ, không chỉ tháng hiện tại) và sửa đổi

    Do đó, vấn đề thực sự là không ai nên sử dụng THAT để tính tháng tiếp theo với ngày hiện tại. Chức năng đó gọi rõ ràng là không dành cho điều đó. Nó có nghĩa là để tăng ngày hiện tại theo một tháng mặt trời. chuyện hoàn toàn khác

    Nếu nó giống như "getNextMonthFromCurrentDate($date)" và nó vẫn hoạt động như "sửa đổi('next month')", thì tôi đã tự phàn nàn rồi

    Dù sao, để hoàn toàn mô phạm, nếu có bất cứ điều gì sai (điều này gây hiểu lầm cho các nhà phát triển ngay từ cái nhìn đầu tiên) thì đó là ngữ nghĩa. "Tháng tới" đó phải là "+1 tháng" hoặc những thứ tương tự (như 'ngày', như Rasmus đã chỉ ra một cách chính xác)

    Nhưng tôi xin nhắc lại, ngay cả với ngữ nghĩa sai, không có cách nào bạn có thể biện minh khi nghĩ rằng đó là chức năng bạn nên sử dụng để có được tháng tiếp theo

    Dù sao đi nữa, đối với PHP <5. 3 người dùng, trang được liên kết bởi Rasmus giúp. "Để xác định tháng trước chính xác hơn, bạn có thể hỏi tháng trước ngày 15 của tháng hiện tại. "

    Tôi tự hỏi, dù sao đi nữa, nói về những con số, chúng ta không thể nói

    $nextmonth = ($currentmonth % 12) + 1;

    ?

    ken

    Thứ bảy, ngày 09 tháng 01 năm 2010, ngày 02. 09 UTC

    @Rasmus

    Lerdorf?. )

    Mặc dù tôi thừa nhận rằng nhiều người thông minh hơn tôi đã phát triển GNU (và PHP), nhưng điều đó không thay đổi được thực tế là nếu bạn thăm dò ý kiến ​​của 100 người không phải là nhà phát triển ngoài đường hôm nay về tháng tới, thất bại trong việc mù chữ, bạn sẽ nhận được phản hồi 100%. . Đó là quan điểm của tôi, rằng không nên có một thực tế bị thay đổi để lập trình

    Tôi nhận ra rằng nhiều khái niệm trọng tâm của PHP bắt nguồn từ các hệ thống khác, và vâng, nó làm cho việc lập trình bằng PHP trở nên dễ dàng hơn đối với các nhà phát triển đã quen thuộc với các hệ thống nói trên, nhưng đối với các lập trình viên mới làm quen chưa quen với các hệ thống nói trên thì sao?

    @Michael

    Không, điều đó không áp dụng ở đây và nó thực sự hỗ trợ cho tuyên bố trước đây của tôi rằng hành vi được quan sát gần giống với "một tháng kể từ bây giờ" (hay còn gọi là. "+1 tháng") so với "tháng tiếp theo". Ngoài ra, điều gì xảy ra khi bạn thay thế 2010-01-31 trong lệnh thứ hai bằng 2010-02-28?


    Vì vậy, để không trở thành một người chỉ đơn giản là chỉ trích mà không đưa ra giải pháp, do đó, tôi nghĩ rằng một giải pháp tốt hơn (mặc dù có lẽ không phải là tốt nhất) sẽ chỉ đơn giản là chuyển ngày sang ngày đầu tiên của tháng tiếp theo. Nếu bạn muốn thêm 31 ngày vào một ngày, thì đã có 2 cách để làm điều đó, phải không?

    Tuy nhiên, tôi cho rằng không có câu trả lời 'dễ dàng' nào cho vấn đề này và đã có nhiều suy nghĩ về vấn đề này, vì vậy tôi sẽ để nó ở đây. Tôi không nghĩ rằng sự lan man của tôi sẽ thực sự thay đổi bất cứ điều gì. )

    ken

    Thứ bảy, ngày 09 tháng 01 năm 2010, ngày 02. 13 giờ UTC

    @Vincenzo

    Thực ra không phải là tháng dương lịch, một tháng dương lịch xấp xỉ 30 ngày (30 ngày, 10 giờ, 29 phút, 3. 8 giây theo một nguồn) và "tháng tới" dường như sử dụng 31 ngày cố định

    Rasmus

    Thứ bảy, ngày 09 tháng 01 năm 2010, ngày 02. 54 UTC

    Tháng dương lịch?

    Nó chỉ đơn giản là tăng tháng. Vì vậy, hôm nay là ngày 8 tháng 1. "+1 tháng" hoặc "tháng tiếp theo" sẽ mang đến cho bạn ngày 8 tháng 2. Mà trong trường hợp này là ok. Tuy nhiên, nếu chúng tôi làm điều này vào ngày 29, 30 hoặc 31 tháng 1 khi chúng tôi tăng tháng, chúng tôi sẽ nhận được một ngày không tồn tại trong tháng Hai, vì vậy chúng tôi sẽ sửa nó bằng cách chuyển số ngày thích hợp sang tháng Ba

    Cho dù đây là cách đúng đắn để làm điều đó hay không là điều gây tranh cãi. Bạn có thể tranh luận cả hai mặt của điều đó một cách dễ dàng, nhưng đến một lúc nào đó, ai đó đã quyết định rằng đây là cách nó sẽ diễn ra và mọi người đã làm theo điều đó. Theo quan điểm của bạn, nó có thể sai, nhưng ít nhất sau đó nó sai một cách nhất quán và có thể đoán trước được. Giống như các ngôn ngữ nói như tiếng Anh. Có rất nhiều điều vốn dĩ không ổn với ngôn ngữ này, nhưng một khi bạn học nó, nó sẽ cảm thấy tự nhiên và hiệu quả

    Vincenzo

    Thứ bảy, ngày 9 tháng 1 năm 2010, ngày 10. 23 UTC

    Quên tháng dương lịch rồi

    Đó không phải là điểm mặc dù. Điểm mấu chốt là. chức năng đó, tuy nhiên nó hoạt động, không nên được sử dụng để nhận chỉ trong tháng tới, đây là một vấn đề đơn giản hơn. Hàm thao tác toàn bộ ngày. Bạn cần biết tháng liền kề với tháng hiện tại là gì

    Micheal Stillwell

    Thứ bảy, ngày 9 tháng 1 năm 2010, ngày 13. 06 UTC

    @ken Thật ra thì có

    sqlite> select datetime('2010-02-28', 'start of month', '+1 month');
    2010-03-01 00:00:00
    
    

    Tôi nghĩ rằng cách tiếp cận của SQLite (với các lệnh riêng biệt được áp dụng theo trình tự và các công cụ sửa đổi ngày dạng số thay vì "tiếp theo", "trước đó") rõ ràng hơn 5. 3 và tạo ra nhiều hành vi dễ dự đoán hơn, vì có ít gợi ý hơn rằng nó sẽ làm theo ý bạn một cách kỳ diệu, trong đó ý bạn muốn nói thực sự có thể mơ hồ. Tuy nhiên, như Rasmus nói, nếu bạn đã quen thuộc với các công cụ Unix khác và cách chúng hoạt động với các ngày tương đối, bạn sẽ mong đợi PHP hoạt động theo cách của nó.

    ngoại lệ e

    Thứ bảy, ngày 9 tháng 1 năm 2010, ngày 22. 35 UTC

    Đây chính là lý do tại sao tôi luôn hơi lo lắng khi gõ ngày tháng theo phong cách tự nhiên. "Liệu hệ thống có hiểu những gì tôi nghĩ nó sẽ hiểu không?"

    Tôi đã có một khoảnh khắc wtf khi tôi thấy rằng tháng tiếp theo sẽ dẫn đến tháng tiếp theo. Sẽ hợp lý hơn một chút nếu những người phát minh ra hệ thống này quyết định đặt các ngày còn lại lên trên, để thay vào đó bạn có 28 tháng 2

    Tôi thích việc Derick tuân theo tiêu chuẩn kỳ lạ này. Tôi đã học được rằng theo một tiêu chuẩn sai còn hơn là không có tiêu chuẩn nào cả. Đã đi edaan Derick. . )

    Cảm ơn vì bài viết này. Mọi người sử dụng tiện ích mở rộng này nên biết sự tinh tế này

    Laurent H

    Thứ hai, ngày 11 tháng 1 năm 2010, ngày 21. 43 UTC

    1 dòng php

    $next_month = date("m Y", strtotime('+1 tháng'));

    http. //php. net/thủ công/vi/chức năng. strtotime. php

    Derick

    Thứ ba, ngày 12 tháng 01 năm 2010, ngày 08. 56 UTC

    @Laurent. Đó chính xác là những gì sẽ không hoạt động nếu hôm nay là ngày 30 hoặc 31 tháng Giêng

    Richard

    Thứ sáu, ngày 29 tháng 01 năm 2010, ngày 09. 36 UTC

    $d = Ngày giờ mới('29-01-2010');

    Điều này sẽ xuất ra "ngày 2 tháng 3 năm 2010" không chính xác. Tôi thấy rằng những điều sau đây cho đầu ra chính xác

    tiếng vang (ngày('m') + 1 % 13);

    Derick

    Thứ sáu, ngày 29 tháng 1 năm 2010, ngày 14. 05 UTC

    @Richard.

    format( 'F jS, Y' ), "\n";
    ?>
    
    
    5 là một cái gì đó mới trong PHP 5. 3, nơi nó chắc chắn hoạt động

    modify( 'first day of next month' );
    echo $d->format( 'F jS, Y' );
    ?>
    
    

    cho

    February 1st, 2010
    
    
    
    

    Steve đất sét

    Thứ hai, ngày 1 tháng 3 năm 2010, ngày 23. 03 UTC

    FWIW, the problem here isn't PHP's consistency with the GNU API (I think that's a good thing), but just incomplete documentation: Neither strtotime nor DateTime::modify even mention that such a standard exists, let alone where to read it. A very buried user comment is not good enough.

    FYI, các tài liệu GNU cho biết "tiếp theo" chỉ được chuyển đổi thành "1" như trong "+1 tháng", vì vậy có lẽ không nên sử dụng thuật ngữ "tiếp theo" vì nó dẫn đến loại mơ hồ này

    Jason

    Thứ tư, ngày 31 tháng 3 năm 2010, ngày 23. 13 giờ UTC

    [A] Tôi đồng ý 100% với Ken rằng hành vi đó không phải là điều mà lập trình viên mong đợi

    [B] Mặc dù hành vi không như mong đợi, nhưng "làm theo một tiêu chuẩn sai còn tốt hơn là không có tiêu chuẩn nào cả". Bạn có thể thừa nhận rằng hành vi không phù hợp với mong đợi nhưng vẫn là lựa chọn tốt nhất với các tiêu chuẩn GNU thực tế

    [C] Việc thiếu tài liệu là một vấn đề thực sự. Giống như Ken đã nói, mọi người sẽ gửi lỗi chống lại điều này cho đến hết thời gian vì có vẻ như đó là một trường hợp rõ ràng về lỗi đối với lập trình viên khi họ lần đầu tiên gặp phải hành vi đó. Quan trọng hơn các lỗi đã nộp là các lỗi này gây ra trong các chương trình của người dùng cuối. Điều này hết sức khó chịu đã xảy ra với bất kỳ lập trình viên nào. Một lỗi chỉ xảy ra hai ngày một tháng trong một chương trình đang hoạt động khác. ôi. Điều này phải được đưa ra trạng thái Cảnh báo trong strtotime() trong sách hướng dẫn và bất kỳ nơi nào khác chuỗi thời gian tương đối được đề cập

    [D] Với sự bổ sung tuyệt vời của "ngày đầu tiên" và "ngày cuối cùng của" (cảm ơn. ) và thực tế là có các lựa chọn thay thế cho "tháng tới" và "tháng trước", "tháng tới" và "tháng trước" không được dùng nữa. Nếu chúng được sử dụng riêng lẻ (theo cách kích hoạt hành vi đầu tiên mà bạn mô tả chứ không phải hành vi thứ hai), thì người dùng sẽ nhận được cảnh báo và thông báo không dùng nữa (bất kể mức độ lỗi/quy trình thông thường trong PHP đối với chức năng không dùng nữa). Tôi không nghĩ rằng đó là một vấn đề khi loại bỏ nó trong PHP khi nó không được dùng trong libc hoặc những nơi khác. Quá trình loại bỏ chức năng không trực quan này cần phải bắt đầu ở đâu đó, cũng có thể là trong PHP. Tôi không nghĩ rằng nó nên bị xóa hoàn toàn trừ khi nó bị xóa ngược dòng, nhưng việc ngừng sử dụng vô thời hạn có vẻ hoàn toàn phù hợp

    Làm cách nào để có được ngày đầu tiên của tháng kể từ ngày trong php?

    // Dấu thời gian hiện tại được giả định, vì vậy chúng tìm ngày đầu tiên và ngày cuối cùng của tháng NÀY $first_day_this_month = date('m-01-Y'); // hard-coded '01' for first day $last_day_this_month = date('m-t-Y'); // With timestamp, this gets last day of April 2010 $last_day_april_2010 = date('m-t-Y', strtotime('April 21, 2010'));

    Làm cách nào để có được ngày đầu tiên và ngày cuối cùng của tháng trước trong php?

    Nhận tháng trước từ ngày đã cho . $date = "2021-12-01"; $new_date = date('Y-m-d', strtotime($date. ' -1 tháng'));

    Làm cách nào để có được ngày cuối cùng của tháng kể từ ngày trong php?

    Trong một dòng. $date = new DateTime('ngày cuối cùng của tháng này');.
    Bạn có thể muốn thêm $date->modify('last day of this month')->setTime(23,59,59); . (.
    Những công việc này. $date = new DateTime('ngày cuối cùng của năm 2020-2');.
    @John bạn sai rồi

    Làm cách nào để thay đổi ngày trong php?

    Chúng ta có thể đạt được chuyển đổi này bằng cách sử dụng hàm strtotime() và date(). Đây là các hàm có sẵn của PHP. .
    $orgDate = "26-02-2019";
    $newDate = date("m-d-Y", strtotime($orgDate));
    echo "Định dạng ngày mới là. ". $newDate. " (MM-DD-YYYY)";