====== 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