我正在使用Codeigniter 3(日历类),我有这个函数来获取日历数据(该表只有一个日期列和一个数据列):
function get_calendar_data($year, $month) {
$query = $this->db->select('date, data')->from('calendar')->like('date', "$year-$month", 'after')->get();
$cal_data = array();
foreach ($query->result() as $row) {
$cal_data[substr($row->date,8,2)] = $row->data;
}
return $cal_data;
}
它工作正常并生成一个月的数组,$ cal_data,包括作为键和值的天数(在这种情况下是颜色的名称)和var_dump通常如下所示:
array (size=6)
26 => string 'amber' (length=5)
27 => string 'red' (length=3)
28 => string 'red' (length=3)
25 => string 'amber' (length=5)
'04' => string 'red' (length=3)
'07' => string 'red' (length=3)
日历需要的。但是,由于日历似乎没有需要它们,因此天数有前导零。因此值不会显示04和07.作为测试,我重写了foreach循环说:
$cal_data[substr($row->date,9,1)] = $row->data;
所以键只能获取日期字符串的最后一个字符,在这种情况下,4和7的值确实显示正确。
是否有一种简单的方法可以删除前导零,因此键是4和7?
答案 0 :(得分:5)
你可以这样做(注意转换为int):
import UIKit
class CellData: UITableViewCell {
@IBOutlet weak var workoutNameLabel: UILabel!
@IBOutlet weak var numberOfSetsNumberLabel: UILabel!
@IBOutlet weak var numberOfRepsNumberLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
答案 1 :(得分:2)
我猜是因为你有substr(..., 8,2 )我认为这是2017-07-30之类的完整日期或类似的东西。
这意味着您可以使用date()来操作数据。
$cal_data[date("j", $row->date)] = $row->data;
日期(“j”)是没有前导零的天数 http://php.net/manual/en/function.date.php