====== PHP and SQL ======
* select today data entry where DATE(`time_entry`) = CURDATE()
* ref: date related: https://popsql.com/learn-sql/mysql/how-to-query-date-and-time-in-mysql
* select current week data entry with option of week start day
where YEARWEEK(`time_entry`) = YEARWEEK(CURDATE())
where YEARWEEK(`time_entry`, 1) = YEARWEEK(CURDATE(), 1)
* Note: weekofyear return week number, means previous year will return too where WEEKOFYEAR(`time_entry`) = WEEKOFYEAR(NOW());
* select current month data entry where YEAR(`time_entry`) = YEAR(NOW()) AND MONTH(`time_entry`)=MONTH(NOW());
* select past 24 hr where `time_entry`> DATE_SUB(NOW(), INTERVAL 1 DAY)
* select past 7 days where `time_entry`> DATE_SUB(NOW(), INTERVAL 1 WEEK)
* select past 1 month time where `time_entry`> DATE_SUB(NOW(), INTERVAL 1 MONTH)
* array related
// sort array
sort($my_list);
* unicode data insert, make sure
- database table's charset is utf8mb4 in sql
CREATE TABLE info_table (
id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name varchar(50) NOT NULL,
edit_time DATETIME NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- make sure database connect is set to utf8mb4 mode in php before query and insert
mysqli_set_charset($con, "utf8mb4");
- make sure charset is declared in html
====== Php Date and Time Related ======
* all time info
date('N'); // current day of week, 6 for saturday
date('N', date_val) // day of week for that date data
date("Y-m-d"); // today's date string
* get current week range (monday to sunday) or any day's week range
//ref: https://stackoverflow.com/questions/5552862/finding-date-range-for-current-week-month-and-year
function rangeWeek($datestr) {
date_default_timezone_set('Asia/Singapore');
$date_val = strtotime($datestr);
return array (
"start" => date('N', $date_val) == 1 ? date ('Y-m-d', $date_val) : date ('Y-m-d', strtotime('last monday', $date_val)),
"end" => date('N', $date_val) == 7 ? date ('Y-m-d', $date_val) : date ('Y-m-d', strtotime('next sunday', $date_val))
);
}
echo rangeWeek('2011-4-5');
* show during time range: https://stackoverflow.com/questions/25921296/i-would-like-to-show-messages-according-to-time-range-between-two-time-stamps/25921549
====== Python to Php ======
^ ^ python ^ php ^
| string operation | word.strip() | trim($word) |
| | word[1:5] | substr($word, 1, 5) |
| | word[1:] | substr($word, 1) |
| | prefix+subfix | $prefix.$subfix |
| | text.replace('find','replace') | str_replace('find','replace',$text) |
| | text.lower() | strtolower($text) |
| | text.startswith(prefix) | ? |
| list operation | res_list = [x.strip() for x in txt.split('\n')] | $res_list = array_map('trim', explod('\n', $txt)) |
| | | $res_list = array_map('trim', preg_split("/\r\n|\n|\r/", $selected) ); // ok for text
|
| | res_list.append(tmp_img) | array_push($res_list, $tmp_img); |
| | | $res_list[] = $tmp_img; |
| | for each in word_list: | foreach($word_list as $each){} |
| | if id in check_list: | if(in_array($id, $check_list)){} |
| logic | if mark == '#': pass; elif mark == '*' | if($mark==="#"){} elseif($mark==="*"){} |
php:
$tmp_path = $path.strtolower(str_replace(' ','_', trim(substr($each,1)))).'.jpg';
$tmp_img = sprintf('
', $tmp_path);
array_push($res_list, $tmp_img);
join("\n",$res_list);
python: (human logic writing)
tmp_path = path + each[1:].strip().replace(' ','_').lower()+ '.jpg'
tmp_img = '
'.format(tmp_path)
res_list.append(tmp_img)
'\n'.join(res_list)
====== Use PHP as HTML File output process ======
* other than serve php page through apache server, php in commandline also can be used to create html local page.
* cmd code for render php to html file
cd php_root_path
php.exe D:\path_to_php_web_page\test.php D:\path_to_php_web_page\test_out.html