簡體   English   中英

將 JavaScript date() 轉換為 Python Django models.DateTimeField

[英]Convert JavaScript date() to Python Django models.DateTimeField

我使用 django 模型表單向數據庫提交數據。 我使用 JavaScript 用以下內容自動填寫表單

document.getElementById('id_date_received').value = Date();

此輸出: Mon Feb 06 2017 11:39:05 GMT+0000 (GMT)而 django 的模型。DateTimeField預計: 2017-02-06 11:39

我如何轉換: Mon Feb 06 2017 11:39:05 GMT+0000 (GMT)2017-02-06 11:39謝謝

IMO,最好的解決方案是使用unix timestamps ,因為您可以避免所有與時區和時間解析相關的復雜內容。

JS:

js_date = new Date('2012.08.10');

// getTime() returns milliseconds from the UNIX epoch,
// so divide it by 1000 to get the seconds representation.

js_timestamp = js_date.getTime() / 1000;

Python:

python_date = datetime.datetime.fromtimestamp(js_timestamp)

您應該考慮使用Moment.js ,它是操作日期和時區格式的最簡單的 javascript 庫。

所以代碼會是這樣的:

moment(YOUR_DATE_VARIABLE).format('YYYY-MM-DD HH:mm'); // 2017-02-06 11:39

希望這對你有幫助。

您可以在接受特定格式的模型表單中設置日期模式。

input_formats=[list of datetime patterns that you want to accept]

這是一個冗長的解決方案,但這應該可以將 Date 轉換為 django 日期時間

我首先通過強制轉換將日期轉換為字符串

(String(date_var))

然后當我收到 API 調用時,我使用此命令將其轉換

datetime.datetime.strptime(",".join(original_time[:original_time.find("(")-1].split(" ")).replace("GMT",""), '%a,%B,%d,%Y,%H:%M:%S,%z')

我建議保留時區,因為不同的服務器可能位於不同的時區,這可能會破壞您的日期!

暫無
暫無

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

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