簡體   English   中英

PHP strtotime(最后一天)函數相關問題

[英]PHP strtotime(last day) function related issue

我需要顯示從每個最后一個星期六20.00.01到下一個星期六20.00.00的每周銷售報告

我使用以下代碼從當天獲得了上周六和下周六的信息。

<?php
$dt_week_start_date = date('Y-m-d 20:00:01',strtotime("last Saturday")); 
$dt_week_end_date = date('Y-m-d 20:00:00',strtotime("next Saturday"));
?>

例如:現在服務器的日期時間是2014年8月15日星期五,那么下面的代碼將為我提供正確的結果。

<?php print(date("d-M-Y H:i:s",strtotime($dt_week_start_date)));?> TO 
<?php print(date("d-M-Y H:i:s",strtotime($dt_week_end_date)));?>

Output: 09-Aug-2014 20:00:01 TO 16-Aug-2014 20:00:00

現在,例如:現在服務器的日期時間是2014年8月16日星期六,那么下面的代碼給了我錯誤的結果。

<?php print(date("d-M-Y H:i:s",strtotime($dt_week_start_date)));?> TO 
<?php print(date("d-M-Y H:i:s",strtotime($dt_week_end_date)));?>

Output: 09-Aug-2014 20:00:01 TO 23-Aug-2014 20:00:00

所以現在是星期六,2014-08-16 05:43:49,所以它小於$ dt_week_end_date變量的值(2014-08-16 20:00:00),因此它應顯示2014年8月16日20:00: 00,而不是2014年8月23日20:00:00。

請讓我知道我的代碼有什么問題嗎? 先感謝您。

嘗試這個

<?php
$today = date('d-M-Y');
$today_time = strtotime($today);

$dt_week_start_time = strtotime("last saturday")+((20*3600)+ 1);
$dt_week_start_date = date('d-M-Y G:i:s', $dt_week_start_time);

$dt_week_end_time = $dt_week_start_time + (7*3600*24) - 1;
$dt_week_end_date = date('d-M-Y G:i:s', $dt_week_end_time);

echo "Today : ".$today;
echo "\n";
echo "Last Saturday : ".$dt_week_start_date;
echo "\n";
echo "Next Saturday : ".$dt_week_end_date;
?>

輸出:

Today : 16-Aug-2014
Last Saturday : 09-Aug-2014 20:00:01
Next Saturday : 16-Aug-2014 20:00:00

演示

試試下面的東西

$dt_week_start_date = strtotime("last Saturday");
$from = date('d-M-Y 20:00:01', $dt_week_start_date);
$to = date('d-M-Y 20:00:01', $dt_week_start_date + (7  *24 * 60 * 60));
echo $from.' To '.$to;

輸出:

09-Aug-2014 20:00:01 To 16-Aug-2014 20:00:01

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM