在日常开发中所使用的JS,JQ,PHP的小知识点整理
持续更新……
1.js和jq获取当前的时间戳
方法一:
<script>
var timestamp = Date.parse(new Date());
//result:1480977330000
</script>
方法二:
<script>
var timestamp = (new Date()).valueOf();
//result:1480977330748
</script>
方法三:
<script>
var timestamp = new Date().getTime();
//result:1480977330748
</script>
**第一种:获取的时间戳是把毫秒改成000显示,
第二种和第三种是获取了当前毫秒的时间戳。**
2.js和jq获取表单的所有元素的方法和封装
JS获取所有表单元素的封装方法
<script>
//获取指定form中的所有的<input>对象
function getElements(formId) {
var form = document.getElementById(formId);
var elements = new Array();
var tagElements = form.getElementsByTagName('input');
for (var j = 0; j < tagElements.length; j++){
elements.push(tagElements[j]);
}
return elements;
}
//获取单个input中的【name,value】数组
function inputSelector(element) {
if (element.checked)
return [element.name, element.value];
}
function input(element) {
switch (element.type.toLowerCase()) {
case 'submit':
case 'hidden':
case 'password':
case 'text':
return [element.name, element.value];
case 'checkbox':
case 'radio':
return inputSelector(element);
}
return false;
}
//组合URL
function serializeElement(element) {
var method = element.tagName.toLowerCase();
var parameter = input(element);
if (parameter) {
var key = encodeURIComponent(parameter[0]);
if (key.length == 0) return;
if (parameter[1].constructor != Array)
parameter[1] = [parameter[1]];
var values = parameter[1];
var results = [];
for (var i=0; i<values.length; i++) {
results.push(key + '=' + encodeURIComponent(values[i]));
}
return results.join('&');
}
}
//调用方法
function serializeForm(formId) {
var elements = getElements(formId);
var queryComponents = new Array();
for (var i = 0; i < elements.length; i++) {
var queryComponent = serializeElement(elements[i]);
if (queryComponent)
queryComponents.push(queryComponent);
}
return queryComponents.join('&');
}
</script>
以上的代码可以把表单的所有数据拼接到一个URL串上,如:
result:user=zjw&psw=123145&phone=1323442123
JQ获取表单所有值
<script>
$(function() {
$('#submit').click(function() {
var d = {};
var t = $('form').serializeArray();
$.each(t, function() {
d[this.name] = this.value;
});
alert(JSON.stringify(d));
});
});
</script>
result:{user:1,psw:15466,phone:13565674471}
补充一个小知识点:
而JSON.stringify(arr)是从一个对象解析出JSON字符串,是带[]的
另外JSON.parse() 是用于从一个字符串中解析出json对象
还有一个更加简便的方法
$("#my_form").serialize();
这个方法可以获得form的所有提交值,而且可以直接用于AJAX
var my_data = $("#my_form").serialize();
//ajax提交
$.ajax({
url:"{:U('do_post_info')}",
data:data,
type:'post',
dataType:'json',
success:function(res){
alert(res);
}
});
这个方法应用于不想提交表单,而获取到表单值
PHP的两个格式化数字的好方法
sprintf()函数
sprintf(format,arg1,arg2,arg++)
参数 | 描述 |
---|---|
format | 必需。转换格式。 |
arg1 | 必需。规定插到 format 字符串中第一个 % 符号处的参数。 |
arg2 | 可选。规定插到 format 字符串中第二个 % 符号处的参数。 |
arg++ | 可选。规定插到 format 字符串中第三、四等等 % 符号处的参数。 |
说明:参数 format 是转换的格式,以百分比符号 (“%”) 开始到转换字符结束。下面的可能的 format值:
- %% - 返回百分比符号
- %b - 二进制数
- %c - 依照 ASCII 值的字符
- %d - 带符号十进制数
- %e - 可续计数法(比如 1.5e+3)
- %u - 无符号十进制数
- %f - 浮点数(local settings aware)
- %F - 浮点数(not local settings aware)
- %o - 八进制数
- %s - 字符串
- %x - 十六进制数(小写字母)
- %X - 十六进制数(大写字母)
arg1, arg2, ++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的。在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。
//生成4位数,不足前面补0
$var=sprintf("%04d", 2);
echo $var;//结果为0002
echo date('Y_m_d', time()).'_'.sprintf('d', rand(0,99));
echo sprintf('%05s',444);//输出5为字符串,不足以0补充
格式数字 number_format()
$number = 1234.56;
// english notation (default)
$english_format_number = number_format($number);
// 1,235
// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56
$number = 1234.5678;
// english notation without thousands seperator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57