2012-11-12 139 views
0

因此,我正在研究PHP的調度器。基本上我有一個研討會的列表,每個會議在同一天同時在同一天聚會一次,並且運行幾周。PHP混合格式日期/時間 - 星期和時間的日期

現在我的數據庫我有p鍵,開始日期,結束日期,本次研討會的名稱,代表的日期和時間的字符串。

現在我有一個顯示所有當前的研討會運行基於今天的日期比較的所有研討會開始和結束日期的頁面。現在我想讓它只是展示今天的研討會。

我想我需要作出日程安排變量的日期。 varchar字符串是一個dect磁帶修復,因爲我甚至不知道該部分從哪裏開始。

如何格式化SQL變量的日期和時間存儲在日期型變量的格式爲[平日] [時間]?這可能嗎?

編輯

可有人誰明白我在問幫我改寫我的問題?看起來我無法做出我清楚的要求。

例如假設有MySQL的研討會是晚上7點開始週三11/14和12/26結束。我將星期三下午7點保存爲VARCHAR字符串,並將StartDate和EndDate保存爲日期。現在我列出所有正在進行的研討會沒有問題,但是我想僅通過那些與當前工作日相對應的星期幾的會議來過濾這些問題。要做到這一點,我需要將'星期三下午7點'轉換爲DATE變量,同時仍然保持完全相同的格式以便按計劃回顯。

回答

0

既然沒有人能夠在這裏明白我的問題,我會回答它自己。在與我認識的幾位專業人士和老師交談後(他們沒有理解我想要的東西......),我發現它在技術上是不可能的,但是一種解決方法是選擇一個任意日期,並在該工作日內使用它作爲一個替代品,然後總是以平日格式呈現。

2

以字符串存儲日期是不鼓勵的。 MySQL包含許多Date/Time functions。您應該將此數據存儲爲DateTime datatype並使用其中一種功能對其進行處理。

例如:

-- returns 1 for Monday 
SELECT DATE_FORMAT(CURDATE(), '%w'); 
+0

是的,當我構建了我知道該怎麼做的代碼的所有部分時,我是在做佔位符。現在我必須返回並用實際的DATETIME替換它,我的問題是如何格式化DATETIME以顯示平日時間:分鐘?m –

+0

正如我的答案中所指出的,['DATE_FORMAT()'](http:// dev.mysql.com/doc/refman/5.1/en/date-and-time-functions。HTML#function_date格式) –

1

MySQL的花費 'YYYY-MM-DD HH:MM:SS' 的日期時間和 'YYYY-MM-DD' 的日期格式。

根據您想如何儲存它,你可以添加日期列,然後做一個更新:

更新表設置datecolumn =「date_string_col」;

只要VARCHAR山坳你現在已經是存儲在適當的格式,否則,你將不得不格式更改爲指定一個。

欲瞭解更多信息:http://dev.mysql.com/doc/refman/5.1/en/datetime.html

+0

謝謝您的回覆,我的問題是與格式化的DATETIME變量顯示當週,而不是任何特定日期的日子,如果這甚至有可能,然後在表中顯示的所有行DATETIME平日相同,當前工作日,而當前日曆日期落在用於該項的開始和結束日期之間。 –

+0

當然,你可以做到這一點知道你解析的數據,你只需要對$天的值進行比較,使用一週:$ FIRSTDAY和$ LASTDAY之間datecol – Michael