Hướng dẫn how to get current week of year in php? - làm thế nào để có được tuần hiện tại của năm trong php?

Tôi đã cố gắng giải quyết câu hỏi này trong nhiều năm nay, tôi nghĩ rằng tôi đã tìm thấy một giải pháp ngắn hơn nhưng phải quay lại một lần nữa với câu chuyện dài. Hàm này mang lại ký hiệu tuần ISO quyền:

/**
 * calcweek("2018-12-31") => 1901
 * This function calculates the production weeknumber according to the start on 
 * monday and with at least 4 days in the new year. Given that the $date has
 * the following format Y-m-d then the outcome is and integer.
 *
 * @author M.S.B. Bachus
 *
 * @param date-notation PHP "Y-m-d" showing the data as yyyy-mm-dd
 * @return integer
 **/
function calcweek($date) {
  // 1. Convert input to $year, $month, $day
  $dateset      = strtotime($date);
  $year         = date("Y", $dateset);
  $month        = date("m", $dateset);
  $day          = date("d", $dateset);

  $referenceday = getdate(mktime(0,0,0, $month, $day, $year));
  $jan1day      = getdate(mktime(0,0,0,1,1,$referenceday[year]));

  // 2. check if $year is a  leapyear
  if ( ($year%4==0 && $year%100!=0) || $year%400==0) {
    $leapyear = true;
  } else {
    $leapyear = false;
  }

  // 3. check if $year-1 is a  leapyear
  if ( (($year-1)%4==0 && ($year-1)%100!=0) || ($year-1)%400==0 ) {
    $leapyearprev = true;
  } else {
    $leapyearprev = false;
  }

  // 4. find the dayofyearnumber for y m d
  $mnth = array(0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334);
  $dayofyearnumber = $day + $mnth[$month-1];
  if ( $leapyear && $month > 2 ) { $dayofyearnumber++; }

  // 5. find the jan1weekday for y (monday=1, sunday=7)
  $yy = ($year-1)%100;
  $c  = ($year-1) - $yy;
  $g  = $yy + intval($yy/4);
  $jan1weekday = 1+((((intval($c/100)%4)*5)+$g)%7);

  // 6. find the weekday for y m d
  $h = $dayofyearnumber + ($jan1weekday-1);
  $weekday = 1+(($h-1)%7);

  // 7. find if y m d falls in yearnumber y-1, weeknumber 52 or 53
  $foundweeknum = false;
  if ( $dayofyearnumber <= (8-$jan1weekday) && $jan1weekday > 4 ) {
    $yearnumber = $year - 1;
    if ( $jan1weekday = 5 || ( $jan1weekday = 6 && $leapyearprev )) {
      $weeknumber = 53;
    } else {
      $weeknumber = 52;
    }
    $foundweeknum = true;
  } else {
    $yearnumber = $year;
  }

  // 8. find if y m d falls in yearnumber y+1, weeknumber 1
  if ( $yearnumber == $year && !$foundweeknum) {
    if ( $leapyear ) {
      $i = 366;
    } else {
      $i = 365;
    }
    if ( ($i - $dayofyearnumber) < (4 - $weekday) ) {
      $yearnumber = $year + 1;
      $weeknumber = 1;
      $foundweeknum = true;
    }
  }

  // 9. find if y m d falls in yearnumber y, weeknumber 1 through 53
  if ( $yearnumber == $year && !$foundweeknum ) {
    $j = $dayofyearnumber + (7 - $weekday) + ($jan1weekday - 1);
    $weeknumber = intval( $j/7 );
    if ( $jan1weekday > 4 ) { $weeknumber--; }
  }

  // 10. output iso week number (YYWW)
  return ($yearnumber-2000)*100+$weeknumber;
}

Tôi phát hiện ra rằng giải pháp ngắn của tôi đã bỏ lỡ 2018-12-31 vì nó đã trả lại năm 1801 thay vì năm 1901. Vì vậy, tôi phải đưa vào phiên bản dài này là chính xác.

❮ Tham khảo ngày/giờ PHP

Thí dụ

Định dạng một ngày và giờ địa phương và trả về chuỗi ngày được định dạng:

// Prints the day
echo date("l") . "
";

// In ngày, ngày, tháng, năm, thời gian, ngày AM hoặc pmecho ("l js \ của f y h: i: s a");?>
echo date("l jS \of F Y h:i:s A");
?>

Hãy tự mình thử »


Định nghĩa và cách sử dụng

Hàm ngày () định dạng một ngày và giờ cục bộ và trả về chuỗi ngày được định dạng.


Làm thế nào có thể nhận được ngày bắt đầu và kết thúc năm hiện tại trong PHP?

$ năm = ngày ('y') - 1; // Nhận năm hiện tại và trừ 1 $ start = "Ngày 1 tháng 1, {$ năm}"; $ end = "ngày 31 tháng 12, {$ năm}"; Nếu bạn cần dấu thời gian cho cả hai ngày đó: $ năm = ngày ('y') - 1; // Nhận năm hiện tại và trừ 1 $ start = mktime (0, 0, 0, 1, 1, $ năm); $ end = mktime (0, 0, 0, 12, 31, $ năm);

Thí dụĐịnh dạng một ngày và giờ địa phương và trả về chuỗi ngày được định dạng:
Định dạng một ngày và giờ địa phương và trả về chuỗi ngày được định dạng:// In ngày, ngày, tháng, năm, thời gian, ngày AM hoặc pmecho ("l js \ của f y h: i: s a");?>
  • Hãy tự mình thử »
  • Định nghĩa và cách sử dụng
  • Cú pháp
  • Giá trị tham số
  • Tham số
  • Sự mô tả
  • định dạng
  • Yêu cầu. Chỉ định định dạng của chuỗi ngày xuất ra. Các ký tự sau có thể được sử dụng:
  • D - ngày trong tháng (từ 01 đến 31)
  • D - Một đại diện văn bản của một ngày (ba chữ cái)
  • J - Ngày trong tháng không có số không dẫn đầu (1 đến 31)
  • l (chữ thường 'l') - một đại diện văn bản đầy đủ của một ngày
  • N - Đại diện số ISO -8601 của một ngày (1 cho Thứ Hai, 7 cho Chủ nhật)
  • S - Hậu tố thứ tự tiếng Anh cho ngày trong tháng (2 ký tự St, ND, Rd hoặc Th. Hoạt động tốt với J)
  • W - Một đại diện số của ngày (0 cho Chủ nhật, 6 cho thứ bảy)
  • Z - Ngày trong năm (từ 0 đến 365)
  • W - Số năm của ISO -8601 (tuần bắt đầu vào thứ Hai)
  • F - Đại diện văn bản đầy đủ của một tháng (từ tháng 1 đến tháng 12)
  • M - Đại diện số của một tháng (từ 01 đến 12)
  • M - Một đại diện văn bản ngắn của một tháng (ba chữ cái)
  • N - Một đại diện số của một tháng, không có số không dẫn đầu (1 đến 12)
  • t - số ngày trong tháng đã cho
  • L - Cho dù đó là một năm bước nhảy (1 nếu đó là một năm bước nhảy, 0 nếu không)
  • O - Số năm ISO -8601
  • Y - Đại diện bốn chữ số của một năm
  • Y - Đại diện hai chữ số của một năm
  • A - Bình thường AM hoặc PM
  • A - Uppercase AM hoặc PM
  • B - Thời gian Internet Swatch (000 đến 999)
  • G - Định dạng 12 giờ của một giờ (1 đến 12)
  • G - Định dạng 24 giờ của một giờ (0 đến 23)
  • H - Định dạng 12 giờ của một giờ (01 đến 12)
  • H - Định dạng 24 giờ của một giờ (00 đến 23)
  • Tôi - phút với số không hàng đầu (00 đến 59)
  • S - giây, với số không hàng đầu (00 đến 59)
  • U - micro giây (được thêm vào Php 5.2.2)
  • E - Mã định danh múi giờ (ví dụ: UTC, GMT, Atlantic/Azores)

I (vốn I) - Cho dù ngày có tiết kiệm được ánh sáng ban ngày không (1 nếu thời gian tiết kiệm ánh sáng ban ngày, 0 nếu không)

  • O - Sự khác biệt với thời gian Greenwich (GMT) tính theo giờ (ví dụ: +0100)
  • P - chênh lệch thời gian Greenwich (GMT) tính theo giờ: phút (được thêm vào Php 5.1.3)
  • T -Timezone Tabreviations (Ví dụ: EST, MDT)
  • Z - Thời gian bù tính bằng giây. Phần bù cho múi giờ phía tây UTC là âm (-43200 đến 50400)
  • C-Ngày ISO-8601 (ví dụ: 2013-05-05T16: 34: 42+00: 00)
  • R - Ngày được định dạng RFC 2822 (ví dụ: Thứ Sáu, ngày 12 tháng 4 năm 2013 12:01:05 +0200)
  • U - Những giây kể từ thời đại UNIX (ngày 1 tháng 1 năm 1970 00:00:00 GMT)
  • và các hằng số được xác định trước cũng có thể được sử dụng (có sẵn kể từ Php 5.1.0):
  • Date_atom-Atom (Ví dụ: 2013-04-12T15: 52: 01+00: 00)
  • Date_cookie-cookie http (ví dụ: Thứ Sáu, 12-tháng 4-13 15:52:01 UTC)
  • DATE_ISO8601-ISO-8601 (Ví dụ: 2013-04-12T15: 52: 01+0000)
DATE_RFC822 - RFC 822 (Ví dụ: Thứ Sáu, ngày 12 tháng 4 13 15:52:01 +0000)DATE_RFC850-RFC 850 (Ví dụ: Thứ Sáu, 12 tháng 4-13 15:52:01 UTC)


DATE_RFC1036 - RFC 1036 (Ví dụ: Thứ Sáu, ngày 12 tháng 4 13 15:52:01 +0000)

DATE_RFC1123 - RFC 1123 (Ví dụ: Thứ Sáu, ngày 12 tháng 4 năm 2013 15:52:01 +0000)DATE_RFC2822 - RFC 2822 (Thứ Sáu, ngày 12 tháng 4 năm 2013 15:52:01 +0000)
DATE_RFC3339 - giống như Date_atom (kể từ Php 5.1.3)DATE_RSS - RSS (Thứ Sáu, ngày 12 tháng 8 năm 2013 15:52:01 +0000)
Changelog:DATE_W3C-Hiệp hội web trên toàn thế giới (ví dụ: 2013-04-12T15: 52: 01+00: 00)
PHP 5.1.1: Added constants of standard date/time formats that can be used to specify the format parameter

❮ Tham khảo ngày/giờ PHP


Làm thế nào để bạn kiểm tra xem ngày là trong tuần hiện tại tại PHP?

4 câu trả lời..
Đây là cách của tôi.Để tìm thấy nó, bạn có thể làm như thế này ..
Bước 1: Tìm bắt đầu và ngày cuối cùng của tuần $ Firstday = date ("y-m-d", strtotime ('Chủ nhật tuần trước'));$ Cuối cùng = ngày ("y-m-d", strtotime ('Chủ nhật tuần này')) ;.
Bước 2 : ... .

Tuần hiện tại số 2022 là gì?

Tuần hiện tại (tuần 44) được nhấn mạnh.

Việc sử dụng hàm date () trong PHP là gì?

Hàm ngày () định dạng một ngày và giờ cục bộ và trả về chuỗi ngày được định dạng.formats a local date and time, and returns the formatted date string.

Làm thế nào có thể nhận được ngày bắt đầu và kết thúc năm hiện tại trong PHP?

$ năm = ngày ('y') - 1;// Nhận năm hiện tại và trừ 1 $ start = "Ngày 1 tháng 1, {$ năm}";$ end = "ngày 31 tháng 12, {$ năm}";Nếu bạn cần dấu thời gian cho cả hai ngày đó: $ năm = ngày ('y') - 1;// Nhận năm hiện tại và trừ 1 $ start = mktime (0, 0, 0, 1, 1, $ năm);$ end = mktime (0, 0, 0, 12, 31, $ năm);; // Get current year and subtract 1 $start = "January 1st, {$year}"; $end = "December 31st, {$year}"; If you need the timestamp for both those dates: $year = date('Y') - 1; // Get current year and subtract 1 $start = mktime(0, 0, 0, 1, 1, $year); $end = mktime(0, 0, 0, 12, 31, $year);