PHP 時間運算 取2日期間共幾年 get years between two dates

php get years between two dates

取2日期間共幾年

/*
 get years between two dates
 https://vector.cool 

 date $date ex:2006/3/8
 date $date2 ex:2017/5/14
 return int
*/
function get_years_between_two_dates($date,$date2=NULL){
	$time = (empty($date2))?time():strtotime($date2);
	$time = $time - strtotime($date);
	return intval($time / (365*24*60*60));
}

用法:

這邊有個要注意的地方,使用這方法須先設定時區

date_default_timezone_set()
date_default_timezone_set("Asia/Taipei");
echo get_years_between_two_dates('2007/7/28','2017/12/23');

 [……]

閱讀更多

Javascript 常用取網址 window.location

// ‘http://127.0.0.1/osac.com.tw/zh-tw/tag_page.php?aaa=1&bbb=2’

// 當前頁面的 URL
window.location.href
// output : ‘http://127.0.0.1/osac.com.tw/zh-tw/tag_page.php?aaa=1&bbb=2’

// 域名
window.location.hostname;
// output : ‘127.0.0.1’

//當前頁的路徑和文件名
window.location.pathname;            
// output : ‘/osac.com.tw/zh-tw/tag_page.php’

//所使用的網絡協議(http://或https://)
console.log(‘location.protocol=’+window.location.protocol);
// output : ‘http:’

//取URL參數
urlParam = decodeURIComponent(location.search)
// output : ‘?aaa=1&bbb=2′[……]

閱讀更多

jQuery 選擇器,替代萬用字元 模糊查找匹配元素

jQuery 選擇器中沒有所謂的「萬用字元(*)」,可以透過依些方式接近模糊查找元素或值的目的

歸納出幾種用法

下表屬性名稱不一定為Class,可以替換成需要的屬性
單引號可有可無

[class]比對元素包含指定屬性[id][class][href] 比對元素包含其中一個屬性[class=’test’] 完全比對元素屬性與值 (區分大小寫)[class^=’test’]比對元素屬性開頭為指定的值[class$=’test’] 比對元素屬性結尾為指定的值 [class*=’test’] 模糊比對屬性包含指定的值[class!=’test’]元素屬性不包含指定的值

使用範例:

Demo Download 範例下載:

[……]

閱讀更多

PHP imagettftext(): Could not find/open font 解決方法

新的主機PHP版本換成5.5.9版本
原本可用的驗証碼圖驗程式跑出 E_WARNING 的 error reporting如下

imagettftext(): Could not find/open font

無法開啟字型檔,導致圖片無法正常顯示,解法如下:
在imagettftext()前加入putenv(‘GDFONTPATH=’ . realpath(‘.’));

putenv(‘GDFONTPATH=’ . realpath(‘.’));
imagettftext( … );


搞定!!

參考網址
http://stackoverflow.com/questions/6089393/imagettftext-cannot-open-font-file

[……]

閱讀更多

PHP Deprecated: Function set_magic_quotes_runtime() is deprecated 解決方法

set_magic_quotes_runtime()於 PHP5.3後棄用

在 PHP.net 官方文件中有提到,set_magic_quotes_runtime()於PHP5.3已經棄用,雖然不會造成Fatal error而中斷程式,但會發送E_DEPRECATED的過時警告

Deprecated: Function set_magic_quotes_runtime() is deprecated

替代方案:

set_magic_quotes_runtime(0);

意思同上,以下列方法替代棄用的set_magic_quotes_runtime()

ini_set("magic_quotes_runtime", 0);
這一段主要是修改 php.ini 中 magic_quotes_runtime 參數
用以將SQL語句自動加上跳脫字元反斜線,以防止SQL注入隱碼攻擊(SQL injection)

PHP 5.4起,使用此函數會拋出Fatal error,終止程式運行

Fatal error: Uncaught Error: Call to undefined function set_magic_quotes_runtime()

相容性:

有時在寫PHP並不一定確定針對某一版本去寫,另外目標主機環境百百款,PHP版本也很不固定,每次要針對版本再改就會很麻煩,我覺得相容性就變得很重要,解決方法如下:

把舊版本程式有使用到

set_magic_quotes_runtime(0);

都改為就可以了

ini_set("magic_quotes_runtime", 0);
另外在前面加上@,加上@的意思就是強制不拋錯誤訊息,如下
@set_magic_quotes_runtime(0);
不過我覺得還是不要使用@強制不拋錯誤訊息的作法,
因為有很多時候Debug還是需要錯誤訊息,
當然還有其他方法,其他方法可參考官網文件,

參考資料:

[……]

閱讀更多

Google Chrome 也太有心了吧,隱藏版,無法連線至網際網路的小遊戲

今天用Google Chrome在瀏覽網頁,後來好像斷線了,
Google Chrome就跳出 無法連線至網際網路這一個錯誤頁,
然後不小心發現,按了空白鍵之後小恐龍就跳起來咧,遊戲就開始了
原來Google Chrome還有個隱藏版小遊戲,感到驚喜,
我便開始玩起來了,讓討人厭的錯誤畫面有新的定義。

按下空白鍵,小恐龍跳起來,遊戲開始


 要跳過障礙物,不然就Game over了

 Game over

雖然是動動手指的小遊戲,但讓人感到用心,在生冷的網路世界多了一分趣味
沒有Google怎麼辦呀!!!!!!
[……]

閱讀更多

解決 ie8 window.location.origin undefined 問題

window.location.origin
蠻好用的在js中可以取網址的這一段 =>  http://sub.domain.com
但ie8似乎不支援,往路上找到個解決方法,成功解了這問題
if (!window.location.origin) {
  window.location.origin = window.location.protocol + “//” + window.location.hostname + (window.location.port ? ‘:’ + window.location.port: ”);
}
原文
http://tosbourn.com/a-fix-for-window-location-origin-in-internet-explorer/

[……]

閱讀更多

CSS Google Fronts 強大的Googe大神,居然還有推出字型的服務

天呀!!我今天才發現,強大的Googe大神,居然也有提供字型的服務,
這對於做網站設計真的是增加非常多的彈性,Google倒了該怎麼辦呀呀呀呀!!!!

Google Fronts
https://www.google.com/fonts

可以一次加入多種字型
還可以選擇多種字體樣式
並且右方能告訴你載入的速度

還教你如何使用你選擇的字型,可說是非常大心,
提供三種使用的方式:
1.HTML LINK 標籤載入。
2.CSS @import 方式載入。
3.Javascript 方式載入。

[……]

閱讀更多

CSS 載入字型

以前一直有個觀念是網頁只能用系統字型,

今天看了一下國外網站,為什麼字型這麼豐富,
我就偷看了一下CSS檔,原來可以載入字型,
打破我舊有的觀念,在版型設計上相信可以更彈性的運用,
語法如下:

@font-face {
    font-family: myFirstFont;
    src: url(sansation_bold.woff);
    font-weight: bold;
}

其他運用

@font-face {
font-family: Lato;
src: local(“Lato Regular”), local(“Lato-Regular”), url(https://fonts.gstatic.com/s/lato/v11/nQhiC-wSiJx0pvEuJl8d8A.eot) format(“embedded-opentype”), url(https://fonts.gstatic.com/s/lato/v11/9k-RPmcnxYEPm8CNFsH2gg.woff) format(“woff”);
font-weight: 400;
font-style: normal;

}

相關網址
https://vector.cool/css-load-font/
http://www.w3schools.com/cssref/css3_pr_font-face_rule.asp

不過,
我想中文字型如果非必要,還是別了吧,因為中文字型檔通常很大,
雖然沒實際測過,但我相信一定會影響載入速度

[……]

閱讀更多