32.MySQL查詢每天早上9點到昨天9點的資料
1.獲取當天日期零點的字串:SELECT DATE_FORMAT(NOW(),'%Y%m%d')
2.將字串轉換為日期格式:SELECT STR_TO_DATE(DATE_FORMAT(NOW(),'%Y%m%d'),'%Y%m%d')
3.使用日期新增間隔DATE_ADD()函式,獲取當天0點的第前15個小時:SELECT DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(),'%Y%m%d'),'%Y%m%d'),INTERVAL -15 HOUR);
4.獲取當天0點的第後9個小時:SELECT DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(),'%Y%m%d'),'%Y%m%d'),INTERVAL 9 HOUR);
最終結果:SELECT * FROM t_xyx_order WHERE createtime >= (SELECT DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(),'%Y%m%d'),'%Y%m%d'),INTERVAL -15 HOUR)) AND createTime <= (SELECT DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(),'%Y%m%d'),'%Y%m%d'),INTERVAL 9 HOUR))
31.action返回頁面時的js、css樣式失效問題(單獨訪問頁面沒有樣式問題)
原因:action跳轉後的url會根據名稱空間,自動跳轉到名稱空間子目錄,使得當前引用的css和js查詢不到,從而失效
解決辦法;先將struts2.xml名稱空間改寫為“/”,不再使用自定義的名稱空間
然後在jsp頁面獲取根路徑 basePath,
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
//String ticket=request.getParameter("ticket");
String channel = request.getParameter("channel");
//String company = request.getParameter("company");
//String center = request.getParameter("center");
//String wgName = request.getParameter("wgName");
//String pageName = request.getParameter("pageName");
//basePath = "https://openapp.10010.com/bj/";
//basePath = "https://ecstest0517.10010.com/bj/";
%>
<base href="<%=basePath%>">
<script type="text/javascript" src="<%=basePath%>guoman/res/jquery-1.7.2.js"></script>
30.js:點選切換
$('#protocol_link').click(function(){
window.open($("base").attr("href")+"single/web/protocol.jsp");
$('#protocolCheck').removeAttr('disabled');
var judge = $('#protocolCheck').val();
$('#protocolCheck').click(function(event){
if(judge){
judge = 0;
$('#protocolCheck').attr('checked','checked');
}else{
judge = 1;
$('#protocolCheck').attr('checked',false);
}
});
});
29.Uncaught TypeError: $(…).live is not a function
on() 方法在被選元素及子元素上新增一個或多個事件處理程式。
自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。該方法給 API 帶來很多便利,我們推薦使用該方法,它簡化了 jQuery 程式碼庫。
注意:使用 on() 方法新增的事件處理程式適用於當前及未來的元素(比如由指令碼建立的新元素)。
提示:如需移除事件處理程式,請使用 off() 方法。
提示:如需新增只執行一次的事件然後移除,請使用 on() 方法。
解決辦法:在專案中所有使用jquery的live()方法都修改成on()方法,使用方法相同,只用修改方法名即可。
28.jsp引入頁面亂碼,不修改子頁面的編碼格式的方法
strtus2,s:include 父頁面與匯入的子頁面編碼格式必須一致,而使用jsp動態引入,子父頁面編碼 pageEncoding="UTF-8" 不必一致:<jsp:include page="head.jsp"/>
原理:jsp include指令告訴容器:先複製被包含檔案彙總的所有內容,再把它貼上到這個檔案中。其中<jsp:include page="head.jsp" flush="false"/> ,flush屬性預設 flush="false" 不會清理快取資料
27.MySQL預設時間設定
MySQL為時間型別:timestamp 設定預設值為當前時間:CURRENT_TIMESTAMP
26.java獲取月末最後一天
/**
* 判斷是否本月的最後一天
*
* @return
*/
public static String isMonthLastDay() {
Date a = new Date();
Calendar b = Calendar.getInstance();
b.setTime(a);
int lastDay = b.getActualMaximum(Calendar.DAY_OF_MONTH);
int now = b.get(Calendar.DAY_OF_MONTH);
String str = lastDay == now ? "0" : "1";
if(str.endsWith("0")){
return b.get(Calendar.HOUR_OF_DAY) >= 17 ? "0" : "1";
}else{
return "1";
}
}
25.js獲取月末最後一天的12點前
//當前時間
var newDate = new Date();
var str =+ newDate.getFullYear() + "-";
str += (newDate.getMonth()+1) + "-";
str += newDate.getDate() +" ";
str += newDate.getHours()+":";
str += newDate.getMinutes()+":";
str += newDate.getSeconds();
//第二個月一號的時間
var oldDate = new Date();
var stt =+ oldDate.getFullYear() + "-";
stt += (oldDate.getMonth()+2) + "-";
stt += '01' +" ";
stt += '00'+":";
stt += 0+":";
stt += '00';
//當前時間的毫秒數
var newD = Date.parse(str);
//下個月1號的毫秒數
var oldD = Date.parse(stt);
if(newD <oldD-43200000){//12個小時的毫秒數
//alert1("當前時間在月末最後一天的19點前,可以正常辦理");
}else{
alert1("親,注意:每月最後一日中午12點後在本頁面申請訂購的使用者,流量包將有可能於次次月才能生效,請酌情安排好申請訂購的時間。");
}
24.提升css樣式優先順序,方法:新增 !important;
input {
border: solid 1px #bbbbbb !important;
background: white !important;
}
23.從路徑中獲取檔名,再獲取檔名的後八位
有字尾名:String str = path.substring(path.lastIndexOf("/") + 1, path.length());
沒有字尾名:String name = str.substring(0, str.lastIndexOf("."));
獲取名稱中後八位作為日期:String dada=name.substring(name.length()-8);
22.ajax請求post方法,本地專案沒問題,伺服器上報500錯誤
原因竟然是:方法中有一個controller呼叫另一個controller,一個service呼叫另一個controller造成,修改後成功
21.java.lang.IllegalStateException: Annotation-specified bean name ‘xyxDao’ for bean class [com.surekam.xiaoyuanxing.dao.XyxDao] conflicts with existing, non-compatible bean definition of same name and class [com.surekam.xiaoyuanxing.dao.impl.XyxDaoImpl]
解決辦法;註解名稱相同,修改為不一樣
20.按行讀後,將每行的字串按照“|”分割,出現bug:列印出結果是按照每個字元分割
解決辦法;加轉義“\\|”
19.頁面報錯net::ERR_ABORTED
原因:找不到引用的js
影響元素:js路徑問題,js載入順序問題,
解決辦法:改路徑,除錯載入順序,都不行的話,不要引用js檔案,直接將js中的方法提取到頁面上
18.js獲取td,span等的值
var tel = document.getElementById("con_tel").innerText;
17.a標籤樣式修改為不可用
加入href =”javascript:return false;” 可以實現不可點選功能
$('#chexiao_order').removeAttr('onclick');移除點選事件
加入style=”opacity: 0.2”可以實現變灰的效果
16.修改資料庫相應欄位的屬性,選擇charset為utf-8,collation為utf8-unicode-ci
Caused by: java.sql.SQLException: Incorrect string value:
'\\xE5\\x91\\xA8\\xE6\\ --異常
15.JS獲取select下拉框選中的name1屬性的值:
var cloud\_type = \$("\#speed").find("option:selected").attr("name1");
14 上傳圖片時,手機端支援開啟相簿和拍照
可行方式:
<input class="weui-uploader\_\_input" type="file" multiple
accept="image/\*" name="file13" id="file13">
不可行方式:
<!-- <input class="weui-uploader\_\_input" type="file"
capture="camera" accept="image/\*" name="file13" id="file13"> -->
13.英文姓名不能為空且不能包含中文
if (ip\_name == "" || /.\*\[\\u4e00-\\u9fa5\]+.\*\$/.test(ip\_name)) {
alert1("英文姓名不能為空且不能包含中文");
return;
}
12…js判斷輸入的只能是字母和數字
var reg = /\^\[0-9a-zA-Z\]+\$/
function jiaoyan(){
var str = \$.trim(\$("\#2\_idcard").val());
if(!reg.test(str)){
alert("您輸入的統一社會信用程式碼不是數字或者字母")
return;
}
}
11.將查詢到的結果集集合都合併放到一個為逗號隔開的新欄位
(SELECT GROUP\_CONCAT(StateTag) FROM t\_wst\_order\_status AS B WHERE
B.OrderId = '011WBSWEB20180403111205582') AS stateTag
10.跳轉相對路徑
href="/bj/cloudspecialline/app/header.jsp"
9.java.lang.NumberFormatException: For input string: “14757272012”
原因&解決辦法:Integer在32位的編譯環境下,儲存長度為32位。即-2\^31\~2\^31-1;
即-2,147,483,648\~2,147,483,647,此時將Integer換成BigInteger型別,問題解決
8.js中將字串型別轉換為數字型別進行計算
js中變數為弱型別,可以直接進行運算:cloud\_type = cloud\_type \* 1 +15;
7.
(1)Unable to instantiate Action
(2)java.lang.ClassNotFoundException
(3)ResourceBundle \[i18n.SecurityMessage\] not found for MessageSource:
除了配置錯誤,還要檢查往後臺伺服器上部署的時候class檔案位置是否正確(\\web\\WEB-INF\\classes\\com\\surekam\\)
6.MYSQL中批量替換某個欄位的部分資料
UPDATE t\_wt\_csl\_order SET ddgj\_trade\_id = REPLACE(ddgj\_trade\_id,
'AA', NULL) \#批量替換:將order表中的BB替換為null
5.按照自定義的時間格式查詢一段時間的下單數量,如:按照每天的小時
SELECT DATE_FORMAT(order_time,'%Y-%m-%d %H') days,COUNT(1) COUNT FROM t_wt_wbsp_main_sheet WHERE order_time >= '2018-04-01' AND order_time <= '2018-04-30' GROUP BY days ;
4.
String dateStr=new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new
Date());
3.ReadOnly和Disabled的作用是使使用者不能夠更改表單域中的內容.
但是二者還是有著一些區別的:
1、Readonly只針對input(text/password)和textarea有效,而disabled對於所有的表單元素有效,包括select,radio,checkbox,button等。
2、在表單元素使用了disabled後,我們將表單以POST或者GET的方式提交的話,這個元素的值不會被傳遞出去,而readonly會將該值傳遞出去
常用情況:
1、在某個表單中為使用者預填了某個唯一識別程式碼,不允許使用者改動,但是在提交時需要傳遞該值,此時將屬性設定為readonly
2、當使用者正式提交了表單後需要等待管理員的資訊驗證,不允許使用者再更改表單中的資料,而是隻能夠檢視,由於disabled的作用元素範圍大,所以此時應該使用disabled,但同時應該注意的是要將submit
button也disabled掉,否則只要使用者按了這個按鈕,如果在資料庫操作頁面中沒有做完整性檢測的話,資料庫中的值會被清除。
3、在使用者按了提交按鈕後,利用javascript將提交按鈕disabled掉,可防止在網路條件比較差的環境下,使用者反覆點選提交按鈕導致資料冗餘地存入資料庫
2.mysql查詢欄位值為空的語法:
where 欄位名 is null
1.jquery定位到某一行:
$("input[name='Operator_card_num']")[0].focus();