簡體   English   中英

在PHP中從一周的一天轉換為Unix時間

[英]Converting from a day of week to unix time in PHP

我正在嘗試為格式如下的日期字符串獲取unix時間:

'second sunday of march 2010'
'first sunday of november 2010'

我的印象是strtotime可以處理這樣的字符串,但顯然不能,因為它返回false。 給定一周中的某一天(一個月中的一個(即第一,第二等),一個月和一年中的哪一天),我該如何轉換為Unix時間。

使用strtotime應該可以做到這一點。 您可以嘗試使用mktime()生成3月第一天的時間戳並將其添加為第二個參數(在字符串部分僅保留“第一個星期天”):

$timestamp = mktime (0,0,0,3,1,2010);  // 1st of march
$first_sunday = strtotime("first sunday", $timestamp);

不知道這將如何處理實際上是星期日的第一天(3月1日)。 確保您檢查出來。

此外,也許這更可靠,檢查出-海報說,他得到了與下面的符號(報價)的好成績:

<?php
strtotime('+0 week sun nov 2009'); // first sunday in nov 2009
strtotime('+1 week sun nov 2009'); // second sunday
strtotime('-1 week sun nov 2009'); // last sunday in oct 2009
?>

與strtotime一樣,無論您選擇什么,都要確保測試良好,尤其是邊緣情況(每月的第一天是星期日,上個月的最后一天是星期日。...)

您的代碼對我適用於PHP 5.3.0。 您正在使用哪個版本的PHP?

<?php
date_default_timezone_set("Europe/Oslo");
$time_march = strtotime('second sunday of march 2010');
$time_november = strtotime('first sunday of november 2010');
echo date("Y-m-d", $time_march) . " (timestamp: $time_march)\n";
echo date("Y-m-d", $time_november) . " (timestamp: $time_november)\n";
?>

給出:

2010-03-14 (timestamp: 1268521200)
2010-11-07 (timestamp: 1289084400)

暫無
暫無

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

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