標籤

2016年9月22日 星期四

[VB6] 比較日期&時間


Dim sDate_1, sDate_2 As String
Dim dDate_1, dDate_2 As Date

sDate_1 = "2016/09/20 08:10:50"
sDate_2 = "2016/09/20 08:00:50"

dDate_1 = CDate(sDate_1)
dDate_2 = CDate(sDate_2)
MsgBox DateDiff("s", dDate_1, dDate_2)

DateDiff第一個參數是Interval,作為兩個時間之間時間差的單位
有 y.m.d.h.n.s(年.月.日.時.分.秒)...等等

2016年9月21日 星期三

[VB6] 圖片仿製按鈕 - 解決圖片閃爍問題

先把兩個Images設定好
1. Picture屬性(Image會預設透明背景)
2. Visible屬性設置False
3. 透過PictuerBox觸發KeyDown.KeyUp來切換圖片,切換圖片用PictuerBoxPaintPicture Function來顯示Image,如此一來就不會有圖片切換時的閃爍問題


以下方法會閃爍
1. 一個Image,屬性Picture = LoadPicture(".\Image\XXX.ico")
2. 兩個Images重疊,用 Visible的方式切換圖片。



補充:背景透明元件,專案->設定使用元件 加入”Microsoft Forms 2.0 Object Library” ,會在左側工具列新增一些OCX,再拉入需要的OCX,並設定BackStyle = 0,背景就會變透明。

2015年11月2日 星期一

[PHP]比較日期&時間

php沒有直接比較時間的函式,不過可以用strtotime()來轉換時間後再比較。

語法:
strtotime(time,now)
這個含式可以轉換自 January 1 1970 00:00:00 GMT 到現在的秒數,第一個值是要計算的字串,第二個值是要到哪個時間,如果省略則是目前的時間。

:
echo(strtotime("now"));
echo(strtotime("3 October 2005"));
echo(strtotime("+5 hours"));
echo(strtotime("+1 week"));
echo(strtotime("+1 week 3 days 7 hours 5 seconds"));
echo(strtotime("next Monday"));
echo(strtotime("last Sunday"));

可以像這樣使用來計算時間
$ThisDay = '2008-01-01';
$ThisDay = strtotime($ThisDay); // 將日期轉為Unix時間戳記
$ThisDay = strtotime("+1 day",$ThisDay); // 計算$ThisDay的後一天
$CheckDay= date("Y-m-d",$ThisDay); // Unix時間戳記轉回日期
echo $CheckDay ;//會顯示 2008-01-02
所以如果我們要比較兩個日期的話,就可以用以下的方式
$date2="2011-3-1";
$date="2011-1-20";
if(strtotime($date)>strtotime($date2)){
echo "Y";
}
else{
echo "N";
}



2015年9月23日 星期三

[PHP] 如何讓中文不被 json_encode 編碼成 unicode

1. 先將中文字 urlencodejson_encode 后,再用 urldecode

  ex. echo urldecode(json_encode(urlencode("早安")));

2.如果使用的 PHP 版本是 5.4 以上的版本,json_encode 函數已經新增了一個選項:JSON_UNESCAPED_UNICODE。加上這個選項后,就不會自動把中文編碼了。
  ex. echo json_encode("早安", JSON_UNESCAPED_UNICODE);

2015年9月22日 星期二

[PHP] array應用

初始化: $arr = (array) null;  or  $arr = array();
    var_dump($arr); //可以用這函式來看裡面元素的 數量、型態
    print_r($arr); //或直接用這行來顯示裡面內容

2015年9月12日 星期六

[PHP] 四種變數範圍比較:區域、全域、靜態、參數


PHP 是一種較為鬆散的語言( Loosely Typed Language ),當我們宣告一個變數時,不須指定變數的型別( type ),PHP 會自動根據指派給該變數的值來判斷該變數的型別。

雖然在宣告變數時不須指定型別,但還有一項必須要指定的--變數的使用範圍( scope )。PHP 有四種不同的使用範圍:local、global、static、parameter,以下將分別介紹。


區域變數 (local variable)

  • 在 function 中宣告
  • 只能在宣告的 function 中使用 (local scope)
  • 不同的 function 中可宣告相同名稱的區域變數
  • 在宣告變數 function 結束時,區域變數也就消滅了
  • 宣告時不需使用任何關鍵字 (keyword)
?
1
2
3
4
5
6
7
8
$a = 5; // 全域
function myTest()
{
echo $a; // 區域
}
myTest();
上例不會輸入任何內容,因為 $a 在function 中未指定值。

全域變數 (global variable)

  • 在 function 外宣告
  • 除了 function 中的 script不能存取外,整個網頁中的 script 都可以存取該變數( global scope )
  • 若要在 function 中使用全域變數,需使用關鍵字 global,見下例
  • 在網頁關閉時,全域變數消滅

?
1
2
3
4
5
6
7
8
9
10
11
$a = 5;
$b = 10;
function myTest()
{
global $a, $b;//注意這行
$b = $a + $b;
}
myTest();
echo $b;
上例輸出 15。

global 變數一旦宣告之後,PHP 會將其放置在 $GLOBALS[index] 這個 array 中,其中 index 就是變數的名稱。我在可以從 function 內存取這個 array,也可以直接指定值給 array 中的某個元素來改變其值。我們將上例改寫如下:
?
1
2
3
4
5
6
7
8
9
10
$a = 5;
$b = 10;
function myTest()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}
myTest();
echo $b;

靜態變數 (static variable)

如前面所說,區域變數在函式結束時就會消滅。不過有時候,當我們希望某區域變數不因函式結束而消滅,我們可以在第一次宣告該區域變數前,加上關鍵字-- static

?
1
static $rememberMe;

如此一來,每次呼叫該函式時,此變數都會包含上一次呼叫函式時所得到的值。
要注意的是:靜態變數仍是一種區域變數。

參數 (parameter,或稱 argument)

參數指的是一種呼叫函式時傳入的區域變數。其會在函式宣告時的參數列 (parameter list) 中被宣告。
?
1
2
3
4
function myTest($para1,$para2,...)//在小括號中宣告
{
// 函式程式碼
}