2010-02-23 9 views
6

我使用jQuery插件,日期選擇器設置存儲在數據庫一個劃時代的時間戳(領域,publish_time日期字段,直接映射到表模式)。jQuery的日期選擇器 - 我如何格式化日期作爲一個劃時代的時間戳(以秒爲NOT毫秒)

Datepicker似乎只支持以毫秒爲單位的紀元,而不是秒。它加重了它支持毫秒,但不是秒。

是否有任何快速解決方法?

// Setup datepicker 
$('[name=datepicker-publish_time]').datepicker({ 
    dateFormat : 'mm-dd-yy', 
    altField : '[name=publish_time]', 
    altFormat : '@' 
}); 

參考文獻:
jQuery的日期選擇器 - http://jqueryui.com/demos/datepicker/#option-defaultDate
jQuery的支持日期格式 - http://docs.jquery.com/UI/Datepicker/formatDate

編輯:下面是一個快速骯髒的解決方案......

$('[name=datepicker-publish_time]').datepicker({ 
    dateFormat : 'mm-dd-yy', 
    onSelect : function(dateText, inst) 
    { 
     var epoch = $.datepicker.formatDate('@', $(this).datepicker('getDate'))/1000; 

     $('[name=publish_time]').val(epoch); 
    } 
}); 
+1

我有完全相同的問題......感謝您發佈您的解決方案。 +1 – mpen 2011-02-25 17:39:27

回答

2

用毫秒錶示和parseInt來獲得一個整數值。然後你可以乘以1000來獲得秒數。這隻需要一點處理,而不是直接採用datepicker的值。

+0

我必須將其作爲最後的選擇。我需要寫一個自定義的回調,我不反對做,但我希望有一個表達式,我可以在dateFormat中使用(例如,'(@/1000)') – 2010-02-23 20:38:58

6

我輸入這個答案,而不是一個評論,所以它不會錯過:我強烈反對使用您的客戶端的原始時間戳作爲值填入您的數據庫,除非你是真的很確定這就是你想要做的。您的客戶可能與您的服務器在不同的時區(事實上,一般來說,他們大概有96%的機會:-),因此當他們選擇「4月2日」時,可能會或可能不會在您的「4月2日」數據庫。

有時當然你想要客戶端的時間,但在我的經驗,這不是太常見。

+0

我有一個類似的問題OP中,我需要將用戶記錄的日期與日期選擇器對照當前服務器時間進行比較...而不是保存tadepicker返回的毫秒值,因爲我也想記錄日期字符串(DD d mm yy),然後我使用jquery ajax將該字符串發送到一個php腳本,將其呈現爲unix時間戳服務器端,並返回 – 2012-11-12 13:36:26

相關問題