简体   繁体   English

在Django中两个小时之间创建15分钟的广告位

[英]Create 15-min slots between two hours in Django

I am working on simple task management tool. 我正在研究简单的任务管理工具。 I need to generate dropdown which shows available time slots between two particular hours in 15 min intervals, like 我需要生成一个下拉列表,以15分钟的间隔显示两个特定小时之间的可用时隙,例如

(input) 13:00 - 14:00 (output) 13:15, 13:30, 13:45, 15:00 (输入)13:00-14:00(输出)13:15,13:30,13:45,15:00

(input) 10:00 - 13:00 (output) 10:00, 10:15, 10:30 ...... 13:00 (输入)10:00-13:00(输出)10:00,10:15,10:30 ...... 13:00

What may be the simplest solution to achieve this? 实现这一目标的最简单的解决方案是什么?

Create a simple generator: 创建一个简单的生成器:

import datetime

def time_slots(start_time, end_time):
    t = start_time
    while t <= end_time:
        yield t.strftime('%H:%M')
        t = (datetime.datetime.combine(datetime.date.today(), t) +
             datetime.timedelta(minutes=15)).time()

And the use it like this: 并使用它像这样:

>>> import datetime
>>> start_time = datetime.time(13, 00)
>>> end_time = datetime.time(14, 00)
>>> list(time_slots(start_time, end_time))
['13:00', '13:15', '13:30', '13:45', '14:00']
>>> 

Try this: 尝试这个:

>>> from datetime import date, datetime, timedelta
>>> beginning = datetime.strptime("10:00", "%H:%M")
>>> hours = 1
>>> times = [beginning + timedelta(minutes=x) for x in range(15, (60 * hours) + 15, 15)]

>>> times
[datetime.datetime(1900, 1, 1, 10, 15), datetime.datetime(1900, 1, 1, 10, 30), datetime.datetime(1900, 1, 1, 10, 45), datetime.datetime(1900, 1, 1, 11, 0)]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM