Python
I recommend dateutil
.
ref:
https://dateutil.readthedocs.org/en/latest/
import datetime
from dateutil import parser as dateutil_parser
>>> dateutil_parser.parse('2014-12-24T16:15:16')
datetime.datetime(2014, 12, 24, 16, 15, 16)
>>> datetime_obj = datetime.datetime.strptime('2014-12-24T16:15:16', '%Y-%m-%dT%H:%M:%S')
datetime.datetime(2014, 12, 24, 16, 15, 16)
>>> datetime_obj = datetime.datetime.strptime('201408282300', '%Y%m%d%H%M')
datetime.datetime(2014, 8, 28, 23, 0)
>>> datetime_obj.strftime('%Y-%m-%d %H:%M')
strftime >> datetime -> str
strptime >> str --> datetime
ref:
https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior
Django Template
class DriverInfoForm(forms.ModelForm):
service_time_start = forms.TimeField(
widget=forms.TimeInput(format='%H:%M'),
input_formats=['%H:%M', ]
)
@register.filter
def str_to_time(time_str, output_format):
"""
把字串轉成 datetime obj
再依據 output_format 輸出
{{ news.modified_at|str_to_time:"%Y/%m/%d %H:%M" }}
"""
from dateutil import parser
datetime_obj = parser.parse(time_str, fuzzy=True)
return datetime_obj.strftime(output_format)
日期:{{ withdraw.presented_at|date:"%Y 年 %n 月" }}
聯絡時間:{{ driver.service_time_start|date:"H:i" }} - {{ driver.service_time_end|date:"H:i" }}
要注意的是,Django 似乎不能 parse AM / PM,所以儘量用 24 小時制。
ref:
https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
JavaScript
I recommend moment.js
.
var today = new Date().toISOString().slice(0, 10);
// 2016-05-11
var t1 = new Date('2016-05-02T03:00:00.000+01:00');
// Mon May 02 2016 10:00:00 GMT+0800 (CST)
var t1_timestamp_ms = t1.getTime();
// 要注意的是 JavaScript 的 getTime() 的單位是 ms
// 1462154400000
var t1_timestamp = t1.getTime() / 1000;
// 1462154400
var t2 = new Date(1485596172 * 1000);
// Sat Jan 28 2017 17:36:12 GMT+0800 (CST)
var t3 = moment('201408292300', 'YYYYMMDDHHmm');
var t3 = moment('2018-02-02')
var timestamp = time.unix()
// 單位是 second
// 1518192000
ref:
https://stackoverflow.com/questions/3552461/how-to-format-a-javascript-date