PHP ayın sonuna kadar saniye olsun

4 Cevap

Ben ayın sonunda sona erecek olan PHP ile bir çerez ayarlamak istiyorum.

Nasıl ayın sonuna kadar saniye sayısı alabilirim?

Teşekkür ederim.

4 Cevap

Sen Epoche yana geçen saniye sayısını almak için zaman () kullanabilirsiniz. Sonra bugüne kadar saniye sayısını almak için strtotime ("tarih") kullanın. Iki çıkarma ve farkın saniye sayıda var.

Bu size ayın son saniye verecektir:

$end = strtotime('+1 month',strtotime(date('m').'/01/'.date('Y').' 00:00:00')) - 1;

Bu size şimdi verecek:

$now = time();

Bu size mesafeyi verecektir:

$numSecondsUntilEnd = $end - $now;

Eğer setcookie() işlevini kullanıyorsanız, o zaman gerçekten çerez süresi ne zaman, number of seconds, sen timestamp gerek gerekmez:

// Works in PHP 5.3+
setcookie("cookie_name", "value", strtotime("first day of next month 0:00"));

// Example without using strtotime(), works in all PHP versions
setcookie("cookie_name", "value", mktime(0, 0, 0, date('n') + 1, 1, date('Y')));

PHP 5.3 'te bu çok daha mantıklı ve biraz daha kolay çok (bence) yapmak gibi işlemleri taşıma yapan bir DateTime sınıf eklenir.

$datetime1 = new DateTime('now'); // current date
$datetime2 = new DateTime(date("Ymt")); // last day in the month
$interval = $datetime1->diff($datetime2); // difference
echo $interval->format('%d') * 86400; // number of seconds

Ayın sonu için bir zaman damgası oluşturun ve ondan şimdiki zaman için zaman damgası çıkarma.

// Create a timestamp for the last day of current month
// by creating a date for the 0th day of next month
$eom = mktime(0, 0, 0, date('m', time()) + 1, 0);

// Subtract current time for difference
$diff = $eom - time();