如標題, 主要是 表單輸入 時要用的, 下拉式選單即可. 例如客戶的生日: [May] [05] [1990], 這個 [1990] 是否能以 [民國79年] 呈現? 原以為只是一個[轉換]而已, 應該[很簡單]才對, 想不到找了很多資料, 到目前為止, 心中仍然沒譜. 被這小問題卡了好幾天, 想了好久, 想閃又閃不掉, 真是太可怕了. :P 敬請賜教, 哪怕只是一個 key 也行, 謝謝. 系統安裝、設定、調整西元 民國 國曆 date widget6.x 發表回應前,請先登入或註冊 Re: [程式設計] 如何實作一個 西元年 以 民國年 呈現 的 date widget ? 我所想到的方式大概都是透過 jQuery 來達成吧 如果是用 DatePicker 的話,可以參考這篇文章 http://aqr199.blog.ithome.com.tw/post/411/62016 發表回應前,請先登入或註冊 Re: [程式設計] 如何實作一個 西元年 以 民國年 呈現 的 date widget ? gloomcheng, 謝謝您. 這個範例比我預期的還要好, 我決定先用看看, 不過得再花點時間消化才行. :9~ 我原本只想在 date 模組 當中找出可用的 api 或是用 form_alter 的 方式修改 year options 的地方, 但找不到可以確定的切入點, 只好留待日後再 說了. 發表回應前,請先登入或註冊 Re: [程式設計] 如何實作一個 西元年 以 民國年 呈現 的 date widget ? http://api.lullabot.com/theme_date_select/7 ???? 發表回應前,請先登入或註冊 Re: [程式設計] 如何實作一個 西元年 以 民國年 呈現 的 date widget ? 終於找到了: http://drupal.org/node/1165138 關鍵在於 #after_build <?php function cotract_form(){ $form['member']['m_birthday'] = array( '#title' => t('會員生日'), '#type' => 'date', '#description' => t('請填入會員出生年月日.'), '#required' => TRUE, '#after_build' => array("contract_format_dob"), // 指定要對此 表單元素 進行 再處理 的 callback 函式 ); return $form; } /* * 嘿~ 照過來照過來 */ function contract_format_dob($form_element, &$form_state){ $max_age = date('Y') - 99; $min_age = date('Y') - 0; $form_element['year']['#options'] = array(); foreach (range($max_age, $min_age) as $year){ $form_element['year']['#options'][$year] = sprintf("民國%03d年",$year-1911); } //2012-01-10 修訂: key的格式要用數字才行, 不能用'Jan', 'Feb'.... 這跟 date 的資料格式有關. $form_element['month']['#options'] = array( '1' => ' 元月', '2' => ' 二月', '3' => ' 三月', '4' => ' 四月', '5' => ' 五月', '6' => ' 六月', '7' => ' 七月', '8' => ' 八月', '9' => ' 九月', '10' => ' 十月', '11' => '十一月', '12' => '十二月', ); return $form_element; } ?> 發表回應前,請先登入或註冊
Re: [程式設計] 如何實作一個 西元年 以 民國年 呈現 的 date widget ? 我所想到的方式大概都是透過 jQuery 來達成吧 如果是用 DatePicker 的話,可以參考這篇文章 http://aqr199.blog.ithome.com.tw/post/411/62016 發表回應前,請先登入或註冊
Re: [程式設計] 如何實作一個 西元年 以 民國年 呈現 的 date widget ? gloomcheng, 謝謝您. 這個範例比我預期的還要好, 我決定先用看看, 不過得再花點時間消化才行. :9~ 我原本只想在 date 模組 當中找出可用的 api 或是用 form_alter 的 方式修改 year options 的地方, 但找不到可以確定的切入點, 只好留待日後再 說了. 發表回應前,請先登入或註冊
Re: [程式設計] 如何實作一個 西元年 以 民國年 呈現 的 date widget ? http://api.lullabot.com/theme_date_select/7 ???? 發表回應前,請先登入或註冊
Re: [程式設計] 如何實作一個 西元年 以 民國年 呈現 的 date widget ? 終於找到了: http://drupal.org/node/1165138 關鍵在於 #after_build <?php function cotract_form(){ $form['member']['m_birthday'] = array( '#title' => t('會員生日'), '#type' => 'date', '#description' => t('請填入會員出生年月日.'), '#required' => TRUE, '#after_build' => array("contract_format_dob"), // 指定要對此 表單元素 進行 再處理 的 callback 函式 ); return $form; } /* * 嘿~ 照過來照過來 */ function contract_format_dob($form_element, &$form_state){ $max_age = date('Y') - 99; $min_age = date('Y') - 0; $form_element['year']['#options'] = array(); foreach (range($max_age, $min_age) as $year){ $form_element['year']['#options'][$year] = sprintf("民國%03d年",$year-1911); } //2012-01-10 修訂: key的格式要用數字才行, 不能用'Jan', 'Feb'.... 這跟 date 的資料格式有關. $form_element['month']['#options'] = array( '1' => ' 元月', '2' => ' 二月', '3' => ' 三月', '4' => ' 四月', '5' => ' 五月', '6' => ' 六月', '7' => ' 七月', '8' => ' 八月', '9' => ' 九月', '10' => ' 十月', '11' => '十一月', '12' => '十二月', ); return $form_element; } ?> 發表回應前,請先登入或註冊
Re: [程式設計] 如何實作一個 西元年 以 民國年 呈現 的 date widget ?
我所想到的方式大概都是透過 jQuery 來達成吧
如果是用 DatePicker 的話,可以參考這篇文章 http://aqr199.blog.ithome.com.tw/post/411/62016
Re: [程式設計] 如何實作一個 西元年 以 民國年 呈現 的 date widget ?
gloomcheng, 謝謝您.
這個範例比我預期的還要好, 我決定先用看看, 不過得再花點時間消化才行. :9~
我原本只想在 date 模組 當中找出可用的 api 或是用 form_alter 的
方式修改 year options 的地方, 但找不到可以確定的切入點, 只好留待日後再
說了.
Re: [程式設計] 如何實作一個 西元年 以 民國年 呈現 的 date widget ?
http://api.lullabot.com/theme_date_select/7 ????
Re: [程式設計] 如何實作一個 西元年 以 民國年 呈現 的 date widget ?
終於找到了: http://drupal.org/node/1165138
關鍵在於 #after_build
<?php
function cotract_form(){
$form['member']['m_birthday'] = array(
'#title' => t('會員生日'),
'#type' => 'date',
'#description' => t('請填入會員出生年月日.'),
'#required' => TRUE,
'#after_build' => array("contract_format_dob"), // 指定要對此 表單元素 進行 再處理 的 callback 函式
);
return $form;
}
/*
* 嘿~ 照過來照過來
*/
function contract_format_dob($form_element, &$form_state){
$max_age = date('Y') - 99;
$min_age = date('Y') - 0;
$form_element['year']['#options'] = array();
foreach (range($max_age, $min_age) as $year){
$form_element['year']['#options'][$year] = sprintf("民國%03d年",$year-1911);
}
//2012-01-10 修訂: key的格式要用數字才行, 不能用'Jan', 'Feb'.... 這跟 date 的資料格式有關.
$form_element['month']['#options'] = array(
'1' => ' 元月',
'2' => ' 二月',
'3' => ' 三月',
'4' => ' 四月',
'5' => ' 五月',
'6' => ' 六月',
'7' => ' 七月',
'8' => ' 八月',
'9' => ' 九月',
'10' => ' 十月',
'11' => '十一月',
'12' => '十二月',
);
return $form_element;
}
?>