Hướng dẫn php date between two dates - ngày php giữa hai ngày

86

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đã nhận được mã này từ Stackoverflow và thay đổi nó một chút để làm việc với ngày hôm nay.

Tôi muốn kiểm tra xem hôm nay có phù hợp giữa hai ngày không. Nhưng điều này không hoạt động. Tôi còn thiếu gì?

$paymentDate = date['d/m/Y'];
echo $paymentDate; // echos today! 
$contractDateBegin = date['d/m/Y', '01/01/2001'];
$contractDateEnd = date['d/m/Y', '01/01/2015'];

if [$paymentDate > $contractDateBegin && $paymentDate < $contractDateEnd]
{
  echo "is between";
}
else
{
echo "NO GO!";  
}

Hỏi ngày 28 tháng 9 năm 2013 lúc 18:09Sep 28, 2013 at 18:09

Papa de Beaupapa de BeauPapa De Beau

3.60418 Huy hiệu vàng78 Huy hiệu bạc135 Huy hiệu Đồng18 gold badges78 silver badges135 bronze badges

5

Chỉnh sửa: Sử dụng

$paymentDate = new DateTime[]; // Today
echo $paymentDate->format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}
2 hoặc
$paymentDate = new DateTime[]; // Today
echo $paymentDate->format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}
3 để đếm ngày hôm nay.
use
$paymentDate = new DateTime[]; // Today
echo $paymentDate->format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}
2 or
$paymentDate = new DateTime[]; // Today
echo $paymentDate->format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}
3 to count today's date.

Đây là câu trả lời đúng cho mã của bạn. Chỉ cần sử dụng hàm PHP strtotime [].

$paymentDate = date['Y-m-d'];
$paymentDate=date['Y-m-d', strtotime[$paymentDate]];
//echo $paymentDate; // echos today! 
$contractDateBegin = date['Y-m-d', strtotime["01/01/2001"]];
$contractDateEnd = date['Y-m-d', strtotime["01/01/2012"]];
    
if [[$paymentDate >= $contractDateBegin] && [$paymentDate format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}
4 của PHP:

$paymentDate = new DateTime[]; // Today
echo $paymentDate->format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}

Đã trả lời ngày 28 tháng 9 năm 2013 lúc 18:22Sep 28, 2013 at 18:22

9

Nếu giờ quan trọng:

$paymentDate = strtotime[date["Y-m-d H:i:s"]];
$contractDateBegin = strtotime["2014-01-22 12:42:00"];
$contractDateEnd = strtotime["2014-01-22 12:50:00"];

if[$paymentDate > $contractDateBegin && $paymentDate < $contractDateEnd] {
   echo "is between";
} else {
    echo "NO GO!";  
}    

Rizier123

57.9K16 Huy hiệu vàng91 Huy hiệu bạc142 Huy hiệu đồng16 gold badges91 silver badges142 bronze badges

Đã trả lời ngày 22 tháng 1 năm 2014 lúc 15:06Jan 22, 2014 at 15:06

Dựa trên câu trả lời của Luttken. Nghĩ rằng tôi sẽ thêm xoắn của tôi :]

function dateIsInBetween[\DateTime $from, \DateTime $to, \DateTime $subject]
{
    return $subject->getTimestamp[] > $from->getTimestamp[] && $subject->getTimestamp[] < $to->getTimestamp[] ? true : false;
}

$paymentDate       = new \DateTime['now'];
$contractDateBegin = new \DateTime['01/01/2001'];
$contractDateEnd   = new \DateTime['01/01/2016'];

echo dateIsInBetween[$contractDateBegin, $contractDateEnd, $paymentDate] ? "is between" : "NO GO!";

Đã trả lời ngày 25 tháng 10 năm 2015 lúc 18:19Oct 25, 2015 at 18:19

1

Một giải pháp khác sẽ được xem xét ngày viết là YMD.

Được viết trong "định dạng" này, điều này rất dễ so sánh ngày.

$paymentDate       = date['Ymd']; // on 4th may 2016, would have been 20160504
$contractBegin     = 20010101;
$contractEnd       = 20160101;
echo [$paymentDate >= $contractBegin && $paymentDate format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}
5 để so sánh với giá trị INT của
$paymentDate = new DateTime[]; // Today
echo $paymentDate->format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}
6 và
$paymentDate = new DateTime[]; // Today
echo $paymentDate->format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}
7].

Đã trả lời ngày 10 tháng 5 năm 2016 lúc 20:23May 10, 2016 at 20:23

ChtisebchtisebChtiSeb

711 Huy hiệu bạc3 Huy hiệu đồng1 silver badge3 bronze badges

Bạn đang so sánh các ngày là chuỗi, sẽ không hoạt động vì so sánh là từ vựng. Đó là vấn đề tương tự như khi sắp xếp một tệp văn bản, trong đó một dòng

$paymentDate = new DateTime[]; // Today
echo $paymentDate->format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}
8 sẽ xuất hiện sau một dòng
$paymentDate = new DateTime[]; // Today
echo $paymentDate->format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}
9 vì nội dung không được coi là số mà là chuỗi mã ASCII. Ngoài ra, các ngày được tạo đều sai vì bạn đang sử dụng chuỗi định dạng chuỗi nơi dự kiến ​​dấu thời gian [đối số thứ hai].

Thay vì điều này, ví dụ, bạn nên so sánh dấu thời gian của các đối tượng

$paymentDate = new DateTime[]; // Today
echo $paymentDate->format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}
4, ví dụ:

 $paymentDate = date_create[];
 $contractDateBegin = date_create_from_format['d/m/Y', '01/01/2001'];
 $contractDateEnd = date_create_from_format['d/m/Y', '01/01/2015'];

Các điều kiện hiện tại của bạn sau đó sẽ hoạt động chính xác.

Đã trả lời ngày 28 tháng 9 năm 2013 lúc 18:12Sep 28, 2013 at 18:12

JonjonJon

419K78 Huy hiệu vàng723 Huy hiệu bạc793 Huy hiệu Đồng78 gold badges723 silver badges793 bronze badges

8

Bởi vì tôi lười:

$paymentDate = new DateTime[];
$contractStartDate = new Datetime['01/01/2001'];
$contractEndDate = new Datetime['01/01/2015'];
$payable = $paymentDate < $contractEndDate && $contractStartDate > $paymentDate; //bool

var_dump[$payable]

Display:

bool[false]

Như một chức năng

function isPayable[DateTime $payDate, DateTime $startDate, DateTime $endDate]:bool 
{
    return $payDate > $startDate && $payDate < $endDate;
}

var_dump[isPayable[new DateTime[], new Datetime['01/01/2001'], new DateTime['01/01/2015']]];
var_dump[isPayable[new DateTime['2003-03-15'], new Datetime['2001-01-01'], new DateTime['2015-03-01']]];


Display:

$paymentDate = date['Y-m-d'];
$paymentDate=date['Y-m-d', strtotime[$paymentDate]];
//echo $paymentDate; // echos today! 
$contractDateBegin = date['Y-m-d', strtotime["01/01/2001"]];
$contractDateEnd = date['Y-m-d', strtotime["01/01/2012"]];
    
if [[$paymentDate >= $contractDateBegin] && [$paymentDate = $contractDateBegin] && [$paymentDate = $contractDateBegin] && [$paymentDate  $contractDateBegin && $paymentDate < $contractDateEnd] {
   echo "is between";
} else {
    echo "NO GO!";  
}    
1 như hiện tại. Vì vậy, một phiên bản đơn giản và sạch hơn của @luttkens câu trả lời ở trên:

$paymentDate = date['Y-m-d'];
$paymentDate=date['Y-m-d', strtotime[$paymentDate]];
//echo $paymentDate; // echos today! 
$contractDateBegin = date['Y-m-d', strtotime["01/01/2001"]];
$contractDateEnd = date['Y-m-d', strtotime["01/01/2012"]];
    
if [[$paymentDate >= $contractDateBegin] && [$paymentDate = $contractDateBegin] && [$paymentDate = $contractDateBegin] && [$paymentDate = $contractDateBegin] && [$paymentDate = $contractDateBegin] && [$paymentDate = $contractDateBegin] && [$paymentDate  $contractDateBegin && $paymentDate < $contractDateEnd] {
   echo "is between";
} else {
    echo "NO GO!";  
}    
2 vì
$paymentDate = strtotime[date["Y-m-d H:i:s"]];
$contractDateBegin = strtotime["2014-01-22 12:42:00"];
$contractDateEnd = strtotime["2014-01-22 12:50:00"];

if[$paymentDate > $contractDateBegin && $paymentDate < $contractDateEnd] {
   echo "is between";
} else {
    echo "NO GO!";  
}    
3.

Để có được ngày đầu ra thích hợp ở giữa, hãy đảm bảo rằng đối với các giá trị

$paymentDate = strtotime[date["Y-m-d H:i:s"]];
$contractDateBegin = strtotime["2014-01-22 12:42:00"];
$contractDateEnd = strtotime["2014-01-22 12:50:00"];

if[$paymentDate > $contractDateBegin && $paymentDate < $contractDateEnd] {
   echo "is between";
} else {
    echo "NO GO!";  
}    
4 từ
$paymentDate = strtotime[date["Y-m-d H:i:s"]];
$contractDateBegin = strtotime["2014-01-22 12:42:00"];
$contractDateEnd = strtotime["2014-01-22 12:50:00"];

if[$paymentDate > $contractDateBegin && $paymentDate < $contractDateEnd] {
   echo "is between";
} else {
    echo "NO GO!";  
}    
5 đến
$paymentDate = strtotime[date["Y-m-d H:i:s"]];
$contractDateBegin = strtotime["2014-01-22 12:42:00"];
$contractDateEnd = strtotime["2014-01-22 12:50:00"];

if[$paymentDate > $contractDateBegin && $paymentDate < $contractDateEnd] {
   echo "is between";
} else {
    echo "NO GO!";  
}    
6 sẽ được chuyển đổi sang định dạng 24 giờ. Thủ thuật nhỏ này đã giúp tôi.

WSCourge

9.66912 Huy hiệu vàng53 Huy hiệu bạc73 Huy hiệu đồng12 gold badges53 silver badges73 bronze badges

Đã trả lời ngày 27 tháng 3 năm 2019 lúc 5:15Mar 27, 2019 at 5:15

Giải pháp đơn giản:

$paymentDate = date['Y-m-d'];
$paymentDate=date['Y-m-d', strtotime[$paymentDate]];
//echo $paymentDate; // echos today! 
$contractDateBegin = date['Y-m-d', strtotime["01/01/2001"]];
$contractDateEnd = date['Y-m-d', strtotime["01/01/2012"]];
    
if [[$paymentDate >= $contractDateBegin] && [$paymentDate  $contractDateBegin && $paymentDate < $contractDateEnd] {
   echo "is between";
} else {
    echo "NO GO!";  
}    
7 và
$paymentDate = strtotime[date["Y-m-d H:i:s"]];
$contractDateBegin = strtotime["2014-01-22 12:42:00"];
$contractDateEnd = strtotime["2014-01-22 12:50:00"];

if[$paymentDate > $contractDateBegin && $paymentDate < $contractDateEnd] {
   echo "is between";
} else {
    echo "NO GO!";  
}    
8 trả về
$paymentDate = strtotime[date["Y-m-d H:i:s"]];
$contractDateBegin = strtotime["2014-01-22 12:42:00"];
$contractDateEnd = strtotime["2014-01-22 12:50:00"];

if[$paymentDate > $contractDateBegin && $paymentDate < $contractDateEnd] {
   echo "is between";
} else {
    echo "NO GO!";  
}    
9 vì vậy số nguyên được so sánh

$paymentDate = new DateTime[]; // Today
echo $paymentDate->format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}
0

Đã trả lời ngày 25 tháng 7 lúc 11:13Jul 25 at 11:13

HEBEHEBEHebe

4601 Huy hiệu vàng5 Huy hiệu bạc10 Huy hiệu đồng1 gold badge5 silver badges10 bronze badges

$paymentDate = new DateTime[]; // Today
echo $paymentDate->format['d/m/Y']; // echos today! 
$contractDateBegin = new DateTime['2001-01-01'];
$contractDateEnd  = new DateTime['2015-01-01'];

if [
  $paymentDate->getTimestamp[] > $contractDateBegin->getTimestamp[] && 
  $paymentDate->getTimestamp[] < $contractDateEnd->getTimestamp[]]{
  echo "is between";
}else{
   echo "NO GO!";  
}
1

Đã trả lời ngày 15 tháng 11 năm 2019 lúc 11:24Nov 15, 2019 at 11:24

Làm thế nào tôi có thể nhận được dữ liệu giữa hai ngày trong PHP?

Cách lấy dữ liệu từ cơ sở dữ liệu giữa hai ngày trong PHP & .....
Bước 1: Đầu tiên tạo một cơ sở dữ liệu có tên là BetDB, nơi dữ liệu của nhân viên được lưu trữ ..
Bước 2: Thứ hai là tạo một bảng có tên là Tem Tempdata và chèn dữ liệu nhân viên ..
Bước3: Tạo tệp kết nối cơ sở dữ liệu và lưu tệp này với tên Cấu hình ..

Làm cách nào để xác nhận một ngày giữa hai ngày?

Để kiểm tra xem ngày có giữa hai ngày không: sử dụng hàm tạo ngày [] để chuyển đổi ngày cho các đối tượng đến ngày. Hãy kiểm tra xem ngày lớn hơn ngày bắt đầu và nhỏ hơn ngày kết thúc.Nếu cả hai điều kiện được đáp ứng, ngày nằm giữa hai ngày.Use the Date[] constructor to convert the dates to Date objects. Check if the date is greater than the start date and less than the end date. If both conditions are met, the date is between the two dates.

Làm thế nào tôi có thể nhận được ngày giữa hai ngày trong MySQL?

Sử dụng hàm datediff [] để lấy số ngày giữa hai ngày trong cơ sở dữ liệu MySQL. to retrieve the number of days between two dates in a MySQL database.

Làm thế nào tôi có thể so sánh hai lần trong PHP?

echo ["sự khác biệt về phút là:"];Echo $ phút.

Bài Viết Liên Quan

Chủ Đề