1

我的以下代码获取 2 个日期

foreach records $get_times {
        lassign $records start_date stop_date
        puts [clock format [clock scan $start_date] \
            -format {%d %b}]
        puts [clock format [clock scan $stop_date] \
            -format {%d %b}]
}

有没有办法可以显示 start_tdate 和 stop_date 之间的所有日期。就像是:

puts "<tr><td>the $start_date</td>the next Date</td><td>....</td><td>the $stop_date</td>"
4

2 回答 2

3

假设您的意思是要在 start_date 和 stop_date 之间打印每一天,我会在 while 循环中使用时钟添加。

set start_date [clock scan {2012-04-20 00:00:00} -format {%Y-%m-%d %H:%M:%S}]
set stop_date [clock scan {2012-04-24 00:00:00}  -format {%Y-%m-%d %H:%M:%S}]
while {$start_date<$stop_date} {
  set start_date [clock add $start_date 1 day]
  puts $start_date
}
于 2012-04-20T17:28:25.260 回答
1

您可以使用clock scan' 使用“英语”时间框架的能力来获得您正在寻找的内容。例如:

set start_ts [clock scan $start_date]
set end_ts [clock scan $stop_date]
for {set current $start_ts} {$current < $end_ts} {set current [clock scan "+1 day" -base $current} {
    puts [clock format $current -format {%d %b}]
}
于 2012-04-20T17:19:02.693 回答