001.
define(
'ctime'
, time());
002.
function
js_1(
$array
){
return
json_encode(
$array
, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_NUMERIC_CHECK); }
003.
function
js_2(
$array
){
return
json_encode(
$array
, JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK); }
004.
function
js_3(
$array
){
return
json_encode(
$array
, JSON_UNESCAPED_SLASHES ); }
005.
function
js_encode(
$array
){
return
json_encode(
$array
, JSON_UNESCAPED_UNICODE | JSON_NUMERIC_CHECK); }
006.
function
doCurl(
$url
) {
007.
$ch
= curl_init();
008.
curl_setopt(
$ch
, CURLOPT_URL,
$url
);
009.
curl_setopt(
$ch
, CURLOPT_RETURNTRANSFER, true);
010.
$data
= json_decode(curl_exec(
$ch
), true);
011.
curl_close(
$ch
);
012.
return
$data
;
013.
}
014.
015.
function
en_month(
$m
,
$opt
=
'full'
){
016.
if
(
$opt
==
'full'
){
017.
return
array
(
''
,
018.
'January'
,
'Febuary'
,
'March'
,
'April'
,
'May'
,
'June'
019.
,
'July'
,
'August'
,
'Septempber'
,
'October'
,
'November'
,
'December'
020.
)[
$m
*1];
021.
}
else
{
022.
return
array
(
''
,
'Jan'
,
'Feb'
,
'Mar'
,
'Apr'
,
'May'
,
'Jun'
,
'Jul'
,
'Aug'
,
'Sep'
,
'Oct'
,
'Nov'
,
'Dec'
)[
$m
*1];
023.
}
024.
}
025.
function
th_month(
$m
,
$opt
=
'full'
){
026.
if
(
$opt
==
'full'
){
027.
return
array
(
''
,
028.
'มกราคม'
,
'กุมภาพันธ์'
,
'มีนาคม'
,
'เมษายน'
,
'พฤษภาคม'
,
'มิถุนายน'
029.
,
'กรกฎาคม'
,
'สิงหาคม'
,
'กันยายน'
,
'ตุลาคม'
,
'พฤศจิกายน'
,
'ธันวาคม'
030.
)[
$m
*1];
031.
}
else
{
032.
return
array
(
''
,
'ม.ค.'
,
'ก.พ.'
,
'มี.ค.'
,
'เม.ย.'
,
'พ.ค.'
,
'มิ.ย.'
,
'ก.ค.'
,
'ส.ค.'
,
'ก.ย.'
,
'ต.ค.'
,
'พ.ย.'
,
'ธ.ค.'
)[
$m
*1];
033.
}
034.
}
035.
function
th_day(
$d
,
$opt
=
'full'
){
036.
if
(
$opt
==
'full'
){
037.
return
array
(
'อาทิตย์'
,
'จันทร์'
,
'อังคาร'
,
'พุธ'
,
'พฤหัสบดี'
,
'ศุกร์'
,
'เสาร์'
)[
$d
];
038.
}
else
{
039.
return
array
(
'อ.'
,
'จ.'
,
'อ.'
,
'พ.'
,
'พฤ.'
,
'ศ.'
,
'ส.'
)[
$d
];
040.
}
041.
}
042.
function
th_d_m(
$dte
,
$opt
=
'full'
){
043.
if
((
$dte
=
date
(
'Y-m-d'
,
strtotime
(
$dte
)))){
044.
return
(
substr
(
$dte
,-2)*1) .
' '
. th_month(
substr
(
$dte
, 5 , 2),
$opt
);
045.
}
return
''
;
046.
}
047.
function
dmy2ymd(
$o
){
048.
$d
= DateTime::createFromFormat(
'j/m/Y'
,
$o
);
049.
return
$d
->format(
'Y-m-d'
);
050.
}
051.
function
ymd2dmy(
$o
){
052.
$d
= DateTime::createFromFormat(
'Y-m-d'
,
$o
);
053.
return
$d
->format(
'd/m/Y'
);
054.
}
055.
function
dte_th_2_en(
$th
){
056.
list(
$d
,
$m
,
$y
)=
explode
(
'-'
,
$th
);
return
date
(
'Y-m-d'
,
mktime
(0,0,0,
$m
,
$d
,
$y
-543));
057.
}
058.
function
dte_en_2_th(
$en
,
$op
=
'short'
){
059.
list(
$y
,
$m
,
$d
)=
explode
(
'-'
,
$en
);
$y
+=543;
$w
=
date
(
'w'
,
strtotime
(
$en
));
060.
if
(
$op
==
'short'
){
return
$d
.
'-'
.
$m
.
'-'
.
$y
;}
061.
if
(
$op
==
'long'
){
return
th_d_m(
$en
).
' พ.ศ.'
.
$y
;}
062.
if
(
$op
==
'full-short'
){
return
th_day(
$w
,
'short'
).
' '
.th_d_m(
$en
,
'short'
).
' '
.
$y
;}
063.
if
(
$op
==
'full-long'
){
return
th_day(
$w
).
'ที่ '
.th_d_m(
$en
).
' พ.ศ.'
.
$y
;}
064.
}
065.
function
datetime_en_2_th(
$en
,
$op
=
'short'
,
$time_op
=
'short'
){
066.
list(
$d
,
$t
)=
explode
(
' '
,urldecode(
$en
));
067.
return
dte_en_2_th(
$d
,
$op
).
' '
.(
$time_op
==
'short'
?
substr
(
$t
,0,5) :
$t
);
068.
}
069.
function
next_due(
$d
,
$last
){
070.
$dtd
=
explode
(
'-'
,
$last
);
071.
$yn
=
mktime
(0, 0, 0,
$dtd
[1]+2, 0,
$dtd
[0]);
072.
$ym
=
mktime
(0,0,0,
$dtd
[1]+1,
$d
,
$dtd
[0]);
073.
return
date
(
'Y-m-d'
, (
$ym
>
$yn
?
$yn
:
$ym
));
074.
}
075.
function
isDate(
$d
,&
$m
=null){
076.
if
(!preg_match(
'/^(\d{4})-(\d{2})-(\d{2})/'
,
$d
,
$m
))
return
false;
077.
if
(
$m
[1]<1700 || (
$m
[2]*1)<1 || (
$m
[2]*1)>12 ||
$m
[3]<1){
return
false; }
078.
return
true;
079.
}
080.
function
isDateTime(
$d
){
081.
return
preg_match(
'/^\d{4}(-\d{2}){2} \d{2}(:\d{2}){1,2}$/'
,
$d
);
082.
}
083.
function
DateGMT(
$d
){
return
date
(
'D, d M Y H:i:s T'
,
$d
);}
084.
function
WgisA(
$d
){
return
date
(
'D, d/m/Y g:i:s A'
,
$d
);}
085.
function
WgiA(
$d
){
return
date
(
'D, d/m/Y g:i A'
,
$d
);}
086.
function
isThDate(
$d
,&
$ar
=null){
return
preg_match(
'/^(\d{2})[\/-](\d{2})[\/-](\d{4})/'
,
$d
,
$ar
);}
087.
function
isDMY(
$d
,&
$ar
=null){
return
preg_match(
'/^(\d{2})[\/-](\d{2})[\/-](\d{4})/'
,
$d
,
$ar
);}
088.
function
dmy(
$dte
){
return
preg_replace(
'/(\d{4})[\/-](\d{2})[\/-](\d{2})/'
,
'$3/$2/$1'
,
$dte
);}
089.
function
age(
$dt
,
$tg
){
090.
$XX
=
strtotime
(
$dt
);
$xy
=
date
(
'Y'
,
$XX
);
$xm
=
date
(
'm'
,
$XX
);
$xd
=
date
(
'd'
,
$XX
);
091.
$YY
=
strtotime
(
$tg
);
$yy
=
date
(
'Y'
,
$YY
);
$ym
=
date
(
'm'
,
$YY
);
$yd
=
date
(
'd'
,
$YY
);
092.
if
(
$XX
<
$YY
){
093.
$y
=
$yy
-
$xy
;
$m
=
$ym
-
$xm
;
$d
=
$yd
-
$xd
;
094.
if
(
$ym
<
$xm
){
$y
--;
$m
+=12;
if
(
$yd
<
$xd
){
$d
+=30;
$m
++;}
095.
}
else
if
(
$ym
>
$xm
){
if
(
$yd
<
$xd
){
$d
+=30;
$m
--; }
096.
}
else
if
(
$yd
<
$xd
){
$y
--;
$m
=11;
$d
+=30; }
097.
}
else
{
098.
$y
=
$xy
-
$yy
;
$m
=
$xm
-
$ym
;
$d
=
$xd
-
$yd
;
099.
if
(
$xm
<
$ym
){
$y
--;
$m
+=12;
if
(
$xd
<
$yd
){
$d
+=30;
$m
++;}
100.
}
else
if
(
$xm
>
$ym
){
if
(
$xd
<
$yd
){
$d
+=30;
$m
--; }
101.
}
else
if
(
$xd
<
$yd
){
$y
--;
$m
=11;
$d
+=30; }
102.
}
103.
return
(object)[
'Y'
=>
$y
,
'M'
=>
$m
,
'D'
=>
$d
];
104.
}
105.
106.
function
ago(
$dt
,
$tg
){
107.
$XX
=
strtotime
(
$dt
);
108.
$YY
=
strtotime
(
$tg
);
109.
if
(
$XX
<
$YY
){
110.
$sec
=
$YY
-
$XX
;
111.
}
else
{
112.
$sec
=
$XX
-
$YY
;
113.
}
114.
$min
=
floor
(
$sec
/ 60);
$sec
-=
$min
* 60;
115.
$hou
=
floor
(
$min
/ 60);
$min
-=
$hou
* 60;
116.
$day
=
floor
(
$hou
/ 24);
$hou
-=
$day
* 24;
117.
return
$day
.
'day '
.
$hou
.
'hrs '
.
$min
.
'mins'
;
118.
}
119.
120.
function
isPsw(
$txt
){
121.
$strength
= 0;
122.
if
(
strlen
(
$txt
)>7){
123.
$strength
+= preg_match(
'/([a-z](.*?)[a-z]|[a-z]{2})/'
,
$txt
)? 1:0;
124.
$strength
+= preg_match(
'/([A-Z](.*?)[A-Z]|[A-Z]{2})/'
,
$txt
) ?1:0;
125.
$strength
+= preg_match(
'/([0-9](.*?)[0-9]|[0-9]{2})/'
,
$txt
) ?1:0;
126.
$strength
+= preg_match(
'/([$@#&!](.*?)[$@#&!]|[$@#&!]{2})/'
,
$txt
) ?1:0;
127.
$strength
+= preg_match(
'/[a-z]/'
,
$txt
) ?1:0;
128.
$strength
+= preg_match(
'/[A-Z]/'
,
$txt
) ?1:0;
129.
$strength
+= preg_match(
'/[0-9]/'
,
$txt
) ?1:0;
130.
$strength
+= preg_match(
'/[$@#&!]/'
,
$txt
) ?1:0;
131.
}
132.
return
$strength
;
133.
}
134.
function
isEmail(
$e
){
135.
return
preg_match(
'/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/'
,
$e
);
136.
};
137.
function
at(){
138.
return
'?at='
.ctime;
139.
}