前段時(shí)間寫了一篇關(guān)于調(diào)用阿里大于的短信接口來開發(fā)例會(huì)短信群發(fā)通知功能的文章//www.gxlcms.com/article/94142.htm,其中的例會(huì)時(shí)間是需求中的重中之重,它需要滿足“格式化”,“易輸入”這兩點(diǎn),對(duì)短信費(fèi)用關(guān)心的開發(fā)者要知道長(zhǎng)短信是兩條短信費(fèi)用之和,因此,例會(huì)時(shí)間不能隨意交給用戶自定義輸入;要考慮到“易輸入”這點(diǎn),只能選擇日期選擇控件來輔助用戶輸入,由于日期選擇控件較為小巧使用,在頁面中引入并不是難事。在本篇文章中,使用的是bootstrap的datetimepicker控件,如今bootstrap廣泛使用,加之項(xiàng)目里用的也是bootstrap框架快速搭建界面的,這樣一來選擇這款日期控件也能較省資源,在這里呈上它的效果圖:
這里想分享以下我在引入datetimepicker資源時(shí)遇到的一個(gè)問題解決方法,這里你需要引入bootstrap-datetimepicker.css和bootstrap-datetimepicker.js,但是引入資源前,你需要在asp.net mvc 中的BundleConfig.cs稍作改變,要說明的是,這個(gè)日期控件依賴jquery.js和bootstrap.js,這些資源引用有時(shí)要考慮有先后順序,應(yīng)該先引用jquery.js再bootstrap.js便是bootstrap-datetimepicker.js。如果遇到控件點(diǎn)擊無反應(yīng),可以使用火狐瀏覽器在控制臺(tái)查看頁面遇到的錯(cuò)誤。
在引用完資源后,這里對(duì)html結(jié)構(gòu)不再說。要知道的在下載的控件zip壓縮包里,有示例html,這很方便進(jìn)行操作。現(xiàn)在解決了易輸入的需求,再之是格式化,好在這個(gè)日期控件得到的日期時(shí)間已經(jīng)是規(guī)范化的,但有一個(gè)問題,選擇的時(shí)間是英文的,是否需要漢化也是一個(gè)考慮的方向。
項(xiàng)目里對(duì)時(shí)間要求的格式為如:10月04。這里不考慮漢化,在后臺(tái)代碼中對(duì)字符串處理,得到預(yù)期的時(shí)間日期。這里可以采用ajax提交選擇的日期。先在在action中做處理:
public ActionResult SmsSendForMeeting(FormCollection Form) { string Operator = Form["Operator"] ;//發(fā)送者 string Department =Form["Department"] ;//部門名稱 string Time = Form["Time"].ToString();//設(shè)定的時(shí)間 //對(duì)日期進(jìn)行處理 //日期格式:"18 September 2016 - 08:30 pm" Time = sp.DateParse(Time);//調(diào)用日期處理函數(shù) //省略其他無關(guān)代碼 return View(); }
這里用到了DateParse()方法,這是解決日期格式轉(zhuǎn)換的方法。這里的思路就兩條,一個(gè)是將年份和空格去掉,一個(gè)便是將英文月份轉(zhuǎn)換為數(shù)字月份,也就是string的操作。
public string DateParse(string Time) { //string Time = "19 January 2016 - 09:00 pm"; Time = Time.Replace(" ", "");//去除空格 string day = Time.Substring(0, 2) + "日";//取出“日” int c = Time.LastIndexOf(":") - 2; string DetailTime = Time.Substring(c);//具體到小時(shí)分鐘 int b = Time.LastIndexOf("201");//這里不是2016 Time = Time.Remove(b); string month = Time.Remove(0, 2);//月份 switch (month) { case "January": month = "1月"; break; case "February": month = "2月"; break; case "March": month = "3月"; break; case "April": month = "4月"; break; case "May": month = "5月"; break; case "June": month = "6月"; break; case "July": month = "7月"; break; case "August": month = "8月"; break; case "September": month = "9月"; break; case "October": month = "10月"; break; case "November": month = "11月"; break; case "December": month = "12月"; break; } string DateTime = month + day + DetailTime;//得到->9月18日08:30pm return DateTime; }
這里就是用到的switch ()函數(shù)和string操作如substring、replace、indexof、remove等,處理的思路有許多,在這里是從左到右處理字符串。DateParse()函數(shù)最后返回就是需要的10月4日,這樣就滿足了對(duì)例會(huì)短信日期“格式化”和“易輸入”的需求。如果我思路和方法有誤,懇請(qǐng)各位指正,虛心求教。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com