- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
months '; ?> 效果很好并显示: 0 -6ren">
我已经有了这样的选择选项:
<?php
echo 'Age : <select id="age" name ="age" class="selecta">';
for($i = 0; $i <= 24; $i += 0.25)
{
?>
<option value="<?php echo $i ;?>"
<?php
if ($_SESSION['age'] == $i)
{
echo " selected='selected'";
}
?> >
<?php echo $i .'  ' ?>
</option>
<?php
}
echo '</select> months <br />';
?>
效果很好并显示:
0 // means 0 month
0.25 // means 1 week or 0.25 of month
0.50 // means 2 weeks or half month
0.75
1 // means 1 month
1.25
....
24
但它对用户来说看起来不太好。所以我想要的是让他们像这样:
0 // 0month
1 week
2 weeks
3 weeks
4 weeks
1 month
1 month and 1 week
1 month and 2 weeks
.....
24 months
完全一样并不是我最终的愿望,但我想要那样的东西。
这可能吗?
最佳答案
for($i = 0; $i <= 24; $i += 0.25) {
您在这里进行了 97 次迭代。同样是为了
range(0, 96);
然后您将这些步骤中的任何一个映射到一个特定的数字:
$map = function($step) {
return $step * 0.25;
}
例如,这将创建以下序列:
0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, ... , 23, 23.25, 23.5, 23.75, 24
所以现在您不需要这些数字,只需要美好的月份。如果您更轻松地采取步骤(而不是小数),您可以计算它们:
month: floor($step / 4) - division (integer)
weeks: $step % 4 - modulo (integer)
或者作为将其转换为文本的映射函数:
$map = function ($step) {
$month = floor($step / 4);
$week = $step % 4;
$buffer = '';
if ($month) {
$buffer .= "$month month";
}
if ($week) {
if ($month) {
$buffer .= ' and ';
}
$buffer .= "$week week" . ($week == 1 ? '' : 's');
}
return $buffer;
};
例如:
$map(0) # (empty)
$map(1) # 1 week
$map(10) # 2 month and 3 weeks
$map(95) # 23 month and 3 weeks
$map(96) # 24 month
所以现在您只需要将范围作为键映射到它们的值,然后您就可以使用这些值进行选择框的标准输出:
$list = range(0, 96);
$selected = 12; // $_SESSION['age']
echo "Age : \n<select id='age' name ='age' class='selecta'>\n";
foreach ($list as $value)
{
$label = $map($value);
printf(" <option value='%d'%s>%s</option>\n", $value, $value === $selected ? " selected='selected'" : '', $label);
}
echo "</select>\n";
它为您提供输出 ( Demo ):
Age :
<select id='age' name ='age' class='selecta'>
<option value='0'></option>
<option value='1'>1 week</option>
<option value='2'>2 weeks</option>
<option value='3'>3 weeks</option>
<option value='4'>1 month</option>
...
<option value='11'>2 month and 3 weeks</option>
<option value='12' selected='selected'>3 month</option>
<option value='13'>3 month and 1 week</option>
...
<option value='50'>12 month and 2 weeks</option>
<option value='51'>12 month and 3 weeks</option>
<option value='52'>13 month</option>
<option value='53'>13 month and 1 week</option>
<option value='54'>13 month and 2 weeks</option>
...
<option value='92'>23 month</option>
<option value='93'>23 month and 1 week</option>
<option value='94'>23 month and 2 weeks</option>
<option value='95'>23 month and 3 weeks</option>
<option value='96'>24 month</option>
</select>
关于php - 在选择选项中显示周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13998487/
我希望你能用一些代码来帮助我,它根据系统日期计算周数。 我有一个文本框 WeekNum ,我想显示 CommandButton1_Click 时的周数被激活。 我找到了有关如何从给定日期计算周数的文章
有没有一种好方法可以让年份+周数转换为R中的日期?我尝试了以下方法: > as.POSIXct("2008 41", format="%Y %U") [1] "2008-02-21 EST" > as
我有一个带有日期列的 mysql 表,我想以某种模式打印我的表,在同一列中,它应该将日期打印为日期(周号)或日期周号。 例如2014-06-05-第 22 周或 2014-06-05(第 22 周)。
我想以字符串格式从给定日期获取 ISO 周数,其中星期一是一周的第一天,包含一年中第一个星期四的那一周被认为是第一周。 从其他答案来看,我认为 strftime("2017-11-18", forma
我正在尝试创建一个脚本,该脚本在设定的时间段(上个月的 23 日和本月的 23 日)内获取工作日、日历日和工作日的计数。 我有以下脚本,我尝试使用 Worksheet Functions 但它不起作用
我确信我在这里忽略了一些非常基本的东西,但在查询和谷歌搜索大约一个小时后我无法理解它。 我已经有一个日期表了,如果有帮助的话。它填充了过去几年的日期,并通过服务器上的作业运行的存储过程每晚更新。 我需
如果在 MySQL 中只有星期几、周数、月份和年份,是否有某种方法可以获取日期? 例子: 我想知道这个参数是哪一天: 年份:2014 月份:9 月 (09) 一年中的周数:37 或 9 月的周数:3
我需要一个选择菜单(下拉菜单),其中周数为 1 到现在 + 10 周。所以我做了: week '.$x.'';
我有以下 Pandas 系列,想获得该日期的 GPS 周数: import pandas as pd from pandas import Timestamp times = pd.Series([T
我需要在我的自定义日历中设置事件,这些事件将根据选定的周期重复,即每天、每周、每月或每年。我有以毫秒为单位的开始和结束日期。 问题: 是否有任何日历或日期 API,我们可以从中计算两毫秒之间的天数、周
以下查询返回周号。 53,我认为 02-Jan-2017 是 2017 年第一周的开始。 SELECT TRUNC(CL_DT, 'IW') AS WK_STARTDATE, TRUNC
我有两个 datetime 对象;开始日期和结束日期。我需要枚举两者之间的天数、周数和月数,包括在内。 理想情况下,结果将采用 datetime 格式,但任何兼容的格式都可以。周和月由与周/月的第一天
我有一个简单的 SQL 用于计算 SQLite 报告中的周数 SELECT STRFTIME('%W', 'date_column') 2009-2012 年是正确的。在 2013 年,我总是得到错误
我有如下四个单元格,我想将它们组合在一个单元格中作为一个短日期: A1: Year A2: Month A3: Week number A4: Week day 现在我想要,Excel 查看上面的单元
如何确定 Windows 批处理文件中的 ( ISO 8601 ) 周数? 不幸的是WMIC PATH WIN32_LOCALTIME GET/FORMAT:LIST只有WeekInMonth...
我正在尝试从给定日期创建 N 周,并且周列表应排除属于该周的周。 例如,如果我给出今天的日期,那么我想生成排除本周的周数至 N 周。 下面是满足我的目的的示例,但我无法创建 N 周数,这段代码也打印当
我有一个 GPS 设备,可以将一些对象(包括 GPS 时间)发送到我的服务器。 它以周数的格式出现,秒到一周。 我想将其转换为日期时间格式。我为此找到了一些代码,但我发现的只是如何将周数转换为日期,不
我正在尝试编写一个函数来计算设备需要检查的下一个日期。我正在使用下面的代码(它不完整。) function get_next_check(){ $today = date(get_option
我有这样一个日期:171115 183130 (17-11-15 18:31:30)。我使用的 API 要求我根据周数提供日期,但由于它用于 GPS 服务,因此需要是从 1980 年(第一个纪元)开始
所以我正在为 Android 开发一个小的储蓄应用程序。我有三个我需要处理的值(value)观。我有每日储蓄金额的值(value),每月储蓄的值(value),以及年度储蓄的值(value)。然后我想
我是一名优秀的程序员,十分优秀!