javascript 时间与时间戳的转换 - 两面一汤 - 博客园

mikel阅读(823)

来源: javascript 时间与时间戳的转换 – 两面一汤 – 博客园

一:时间转时间戳:JavaScript获得时间戳的方法有五种,都是通过实例化时间对象 new Date() 来进一步获取当前的时间戳

1.var timestamp1 = Date.parse(new Date()); // 结果:1477808630000 不推荐这种办法,毫秒级别的数值被转化为000

console.log(timestamp1);

2.var timestamp2 = (new Date()).valueOf(); // 结果:1477808630404 通过valueOf()函数返回指定对象的原始值获得准确的时间戳值

console.log(timestamp2);

3.var timestamp3 = new Date().getTime(); // 结果:1477808630404 ,通过原型方法直接获得当前时间的毫秒值,准确

console.log(timestamp3);

4.var timetamp4 = Number(new Date()) ; //结果:1477808630404 ,将时间转化为一个number类型的数值,即时间戳

console.log(timetamp4);

5.ES5给Date提供了一种获取时间戳的新特性
var timetamp5 = Date.now();                   //结果:1477808630404 

console.log(timetamp5);

打印结果 如下:

 

 

二,时间戳转时间

var timestamp4 = new Date(1472048779952);//直接用 new Date(时间戳) 格式转化获得当前时间

console.log(timestamp4);

console.log(timestamp4.toLocaleDateString().replace(/\//g, “-“) + ” ” + timestamp4.toTimeString().substr(0, 8)); //再利用拼接正则等手段转化为yyyy-MM-dd hh:mm:ss 格式

效果如下:

 

不过这样转换在某些浏览器上会出现不理想的效果,因为toLocaleDateString()方法是因浏览器而异的,比如 IE为2016年8月24日 22:26:19 格式 搜狗为Wednesday, August 24, 2016 22:39:42

 

可以通过分别获取时间的年月日进行拼接,比如:

function getdate() {
            var now = new Date(),
                y = now.getFullYear(),
                m = ("0" + (now.getMonth() + 1)).slice(-2),
                d = ("0" + now.getDate()).slice(-2);
            return y + "-" + m + "-" + d + " " + now.toTimeString().substr(0, 8);
        }

使用git提交项目到码云 - CSDN博客

mikel阅读(986)

来源: 使用git提交项目到码云 – CSDN博客

一、git安装
1、首先在官方网站下载git工具,或者根据以下链接进行下载:http://download.csdn.net/detail/qq_27501889/9788879(此链接版本为git-2.11版本)
2、找到Git-2.11.exe文件,双击安装
3、点击next继续下一步
4、更改安装路径,点击next下一步
5、勾选Additonai icons,创建桌面图标,不想创建桌面图标可不勾选此项,点击next下一步
6、在Adjusting your PATH environment中,选择默认选中的那一个,点击next下一步
7、在Configuring the line ending conversions中,同样选择默认的选项,点击next下一步
8、不用多说,还是默认状态,然后下一步
9、这里勾选上前面两个选项,然后next下一步
10、默认状态,直接下一步,进行安装,安装完成后,finish完成安装
二、初次使用Git时,需要Git进行配置
1、点击桌面上的这个图标,打开Git Bash
2、配置自己的用户名和邮箱
git config –global user.name “你的名字或昵称”
git config –global user.email “你的邮箱”
3、生成并部署SSH key公钥
ssh-keygen -t rsa -C “xxxxx@xxxxx.com”
     输入之后,连续按回车键,不需要做任何更改,会生成SSH key,存放在系统默认路径下
4、查看生成的SSH key
cat ~/.ssh/id_rsa.pub
5、在c:/Users/“你的用户名”/.ssh路径下,找到id_rsa.pub文件
     将里面的内容全部复制下来
6、将SSH key添加到码云账户中
进入码云中,找到修改资料选项
7、在左边找到SSH公钥选项
标题可以任意起一个(eg:key one),然后将刚复制的内容粘贴到公钥里面,点击确定,就添加完成SSH key了。
三、准备工作已经就绪,准备上传自己的第一个项目
1、在码云的个人主页,点击来新建项目
2、完成自己对项目的描述,可以选择是否公开这个项目,点击创建就创建好了自己的远程代码仓库,然后可以编辑README.md文件,来对项目进行描述。
3、在要提交的项目文件夹上右键,选择Git Bash Here
4、在出现的命令框中
git init   ———-初始化git仓库
git remote add origin 你的项目地址 //注:项目地址形式为:http://git.oschina.net/xxx/xxx.git或者 git@git.oschina.net:xxx/xxx.git     用来连接远程码云
5、开始第一次上传你的项目
git add .      –将项目中的所有文件上传
git commit -m ‘对上传文件的注释’
git push origin master    –正式上传至码云中,若上传有问题,可以试试   git push origin master -f 表示舍弃线上的文件,强制推送

List泛型的Find 和 Where 用法范例

mikel阅读(886)

http://blogs.msdn.com/b/kcwalina/archive/2004/06/22/162533.aspx

http://www.cnblogs.com/yuanyuan/archive/2010/06/19/1760987.html

 

 

API Design
Delegates
namespace System {

   public delegate void Action<T>(T obj);

   public delegate bool Predicate<T>(T obj);

   public delegate U Converter<T,U>(T from);

   public delegate int Comparison<T>(T x, T y);

}

List<T>
public class List<T> : … {

   public int FindIndex(Predicate<T> match);

   public int FindIndex(int index, Predicate<T> match);

   public int FindIndex(int index, int count, Predicate<T> match);

 

   public int FindLastIndex(Predicate<T> match);

   public int FindLastIndex(int index, Predicate<T> match);

   public int FindLastIndex(int index, int count, Predicate<T> match);

 

   public List<T> FindAll(Predicate<T> match);

   public T Find(Predicate<T> match);

   public T FindLast(Predicate match);

 

   public bool Exists(Predicate<T> match);

   public bool TrueForAll(Predicate<T> match); 

   public int RemoveAll(Predicate<T> match);

 

   public void ForEach(Action<T> action);

   public void Sort(Comparison<T> comparison);

   public List<U> ConvertAll<U>(Converter<T,U> converter);

}

Finding Even Integers in List<T>
List<int> integers = new List<int>();

For(int i=1; i<=10; i++) integers.Add(i);

List<int> even = integers.FindAll(delegate(int i){

   return i%2==0;

});

Finding Complex Type in List<T>
public class Order {

   public Order(int number, string item) { … }

   public int Number { get { return number; } }

   public string Item { get { return item; } }

   …

}

List<Order> orders = new List<Order>();

int orderNumber = 10;

Order order = orders.Find(delegate(Order o){

   return o.Number==orderNumber;

});

Computing Sum of Integers in List<T>
List<int> integers = new List<int>();

for(int i=1; i<=10; i++) integers.Add(i);

int sum;

integers.ForEach(delegate(int i){ sum+=i; });

Sort Orders in List<T>
List<Order> orders = new List<Order>();

orders.Add(new Order(10,”Milk”));

orders.Add(new Order(5,”Cheese”));

 orders.Sort(delegate(Order x, Order y){

   return Comparer<int>.Default.Compare(x.Number,y.Number);

});

Convert Orders to Order Numbers
List<Order> orders = new List<Order>();

orders.Add(new Order(10,”Milk”));

orders.Add(new Order(5,”Cheese”));

List<int> numbers = orders.ConvertAll(delegate(Order x){

   return o.Number;

});

js 控制台输出 - CSDN博客

mikel阅读(768)

console.log(object[, object, …])在控制台输出一条消息。如果有多个参数,输出时会用空格隔开这些参数。第一个参数可以是一个包含格式化占位符输出的字符串,例如:console.log(“The %s jumped over %d tall buildings”, animal, count);上面的例子可以用下面的无格式化占位符输出的代

来源: js 控制台输出 – CSDN博客

console.log(object[, object, …])
在控制台输出一条消息。如果有多个参数,输出时会用空格隔开这些参数。

第一个参数可以是一个包含格式化占位符输出的字符串,例如:

console.log(“The %s jumped over %d tall buildings”, animal, count);

上面的例子可以用下面的无格式化占位符输出的代码替换:

console.log(“The”, animal, “jumped over”, count, “tall buildings”);

并且,这两种方式是可以组合使用的。如果使用了格式化占位符,而提供的参数的个数多于占位符的个数,那么,多余的参数会以空格分隔的方式附加在字符串后面,就像:

console.log(“I am %s and have:”, myName, thing1, thing2, thing3);

如果参数是一个JavaScript对象,那么在控制台输出的就不是静态文字,而是一个可交互的超链接,点击超链接可以查看该对象的HTML, CSS, Script, DOM窗口,可用格式化字符串%o代替JavaScript对象。

console.log(“Body tag is %o”, document.body);

格式化字符串列表:

格式化字符串 类型
%s 字符串
%d, %i 整型(暂不支持数字型)
%f 浮点型 (暂不支持数字型) 
%o 链接对象

console.Debug(object[, object, …])
在控制台输出一条消息,包含一个指向代码调用位置的超链接。假如是直接在控制台输入该命令,就不会出现超链接(和console.log()一样)。

console.info(object[, object, …])
在控制台输出一条带有“信息”图标的消息和一个指向代码调用位置的超链接。

console.warn(object[, object, …])
在控制台输出一条带有“警告”图标的消息和一个指向代码调用位置的超链接。

console.error(object[, object, …])
在控制台输出一条带有“错误”图标的消息和一个指向代码调用位置的超链接。

console.assert(expression[, object, …])
测试表达式expression是否为真。如果不是真,会在控制台写一条消息并抛出异常

console.dir(object)
以列表形式输出一个对象的所有属性,有点和你查看DOM窗口相类似。

console.dirxml(node)
输出一个HTML或者XML元素的XML源代码。和你在HTML窗口看到的相似。

console.trace()
Prints an interactive stack trace of JavaScript execution at the point where it is called.

The stack trace details the functions on the stack, as well as the values that were passed as arguments to each function. You can click each function to take you to its source in the Script tab, and click each argument value to inspect it in the DOM or HTML tabs.

console.group(object[, object, …])
输出一条消息,并打开一个嵌套块,块中的内容都会缩进。调用console.groupEnd()关闭块。该命令可以嵌套使用。

console.groupEnd()
关闭最近一个由console.group打开的块。

console.time(name)
创建一个名字为name的计时器,调用console.timeEnd(name)停止计时器并输出所耗时间(毫秒)。

console.timeEnd(nam

C#实现JSON序列化与反序列化 - wuln - 博客园

mikel阅读(1361)

来源: C#实现JSON序列化与反序列化 – wuln – 博客园

JSON(JavaScript Object Notation)——JavaScript对象表示法,是JavaScript用来处理数据的一种格式,大部分是用来处理JavaScript和web服务器端之间的数据交换,把后台web服务器的数据传递到前台,然后使用JavaScript进行处理,例如ajax等,是独立于语言和平台的轻量级的数据交换格式。

JSON的数据类型:

  • number:和JavaScript的number完全一致;
  • boolean:就是JavaScript的true或false;
  • string:就是JavaScript的string;
  • null:就是JavaScript的null;
  • array:就是JavaScript的Array表示方式——[];
  • object:就是JavaScript的{ … }表示方式。

以及上面的任意组合。并且,JSON还定死了字符集必须是UTF-8。为了统一解析,JSON的字符串规定必须用双引号””,Object的键也必须用双引号””,如果JSON中含有转义字符,则需要转义。

1、使用 JavaScriptSerializer类实现序列化
namespace: System.Web.Script.Serialization
eg:

复制代码
 1 // 序列化
 2 private string ObjectToJson(Person obj)
 3 {
 4     JavaScriptSerializer jsonSerialize = new JavaScriptSerializer();
 5     return jsonSerialize.Serialize(obj);
 6 }
 7 // 反序列化
 8 private Person JsonToObject(string jsonStr)
 9 {
10     JavaScriptSerializer jsonSerialize = new JavaScriptSerializer();
11     return jsonSerialize.Deserialize<Person>(jsonStr);
12 }
复制代码

注:可用 [ScriptIgnore] 标记不序列化的属性

2、使用 DataContractJsonSerializer类实现序列化

namespace:System.Runtime.Serialization.Json

eg:

复制代码
 1 // 序列化
 2 using (MemoryStream stream =new MemoryStream())
 3 {
 4     DataContractJsonSerializer jsonSerialize =new DataContractJsonSerializer(Person);
 5     jsonSerialize.WriteObject(stream, obj);
 6     jsonStr = Encoding.UTF8.GetString(stream.ToArray());
 7 }
 8 // 反序列化
 9 using (MemoryStream stream =new MemoryStream(Encoding.UTF8.GetBytes(jsonStr)))
10 {
11     DataContractJsonSerializer jsonSerialize =new DataContractJsonSerializer(Person);
12     obj = (Person)jsonSerialize.ReadObject(stream);
13 }
复制代码

注:可用 [IgnoreDataMember] 标记不序列化的属性

3、使用开源类库Newtonsoft.Json实现序列化

namespace:Newtonsoft.Json

eg:

复制代码
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Data;
 4 using System.Linq;
 5 using System.Web;
 6 using System.Web.UI;
 7 using System.Web.UI.WebControls;
 8 using Newtonsoft.Json;
 9 using Newtonsoft.Json.Linq;
10 
11 namespace DataInterface
12 {
13     public partial class UserLogin : System.Web.UI.Page
14     {
15         protected void Page_Load(object sender, EventArgs e)
16         {
17             string errMsg = string.Empty;
18             if (Request["JsonString"] != null)
19             {
20                 string jsonString = Request["JsonString"].ToString();
21                 JObject array;
22                 string userName = string.Empty, password = string.Empty;
23                 try
24                 {
25                     array = (JObject)JsonConvert.DeserializeObject(jsonString);
26                     userName = array["userName"].ToString().Trim('"');
27                     password = array["password"].ToString().Trim('"').ToUpper();
28                 }
29                 catch
30                 {
31                     errMsg = "传入参数错误";
32                 }
33             }
34         }
35     }
36 }
复制代码
复制代码
 1 string jsonText = string.Empty;
 2 StringWriter sw = new StringWriter();
 3 JsonWriter writer = new JsonTextWriter(sw);
 4 
 5 writer.WriteStartObject();
 6 writer.WritePropertyName("result");
 7 writer.WriteValue("1");
 8 writer.WritePropertyName("msg");
 9 writer.WriteValue("sucess");
10 writer.WriteEndObject();
11 writer.Flush();
12 jsonText = sw.GetStringBuilder().ToString();

ajax中JSON.stringify()和JSON.parse()方法的使用 - CSDN博客

mikel阅读(1346)

我们平时使用ajax向后台传递数据时,通常会传递json格式的数据(写在dataType中),当然这里还有其它格式,比如xml、html、script、text、jsonp格式。json类型的数据包含json对象和json类型的字符串1、json对象示例如下:var jsondata={“Participant”:[{“Name_1″:”1″,”Position_1”:”1

来源: ajax中JSON.stringify()和JSON.parse()方法的使用 – CSDN博客

我们平时使用ajax向后台传递数据时,通常会传递json格式的数据,当然这里还有其它格式,比如xml、html、script、text、jsonp格式。

json类型的数据包含json对象和json类型的字符串

JSON.stringify(),将JSON对象转换为JSON类型的字符串

JSON.parse(),将JSON类型的字符串转换为JSON对象

使用详情见下面4个示例。

1、直接传递json对象,示例如下:

  1. <span style=“font-size:14px;”><script>
  2. var jsondata={“Participant”:[{“Name_1″:”1″,”Position_1″:”1″,”Tel_1″:”1″,”Mobile_1″:”1″,”Ohter_1″:”1”},{“Name_2″:”1″,”Position_2″:”1″,”Tel_2″:”2″,”Mobile_2″:”2″,”Ohter_2″:”2”}]}
  3. $.ajax({
  4.                 type: “POST”,
  5.                 contentType: “application/json;charset=utf-8″,
  6.                 url: “ApplyEdit.aspx/SaveParticipant”,
  7.                 data: jsondata,
  8.                 dataType: “json”,
  9.                 complete: function () { },
  10.                 success: function (result) {
  11.                 },
  12.                 error: function (result, status) { }
  13.             });
  14. </script></span>

2、使用JSON.stringify(),将JSON对象转换为JSON类型的字符串示例如下:

  1. <span style=“font-size:14px;”><script>
  2. var jsondata={“Participant”:[{“Name_1″:”1″,”Position_1″:”1″,”Tel_1″:”1″,”Mobile_1″:”1″,”Ohter_1″:”1”},{“Name_2″:”1″,”Position_2″:”1″,”Tel_2″:”2″,”Mobile_2″:”2″,”Ohter_2″:”2”}]}
  3. $.ajax({
  4.                 type: “POST”,
  5.                 contentType: “application/json;charset=utf-8″,
  6.                 url: “ApplyEdit.aspx/SaveParticipant”,
  7.                 data: JSON.stringify(jsondata),
  8.                 dataType: “json”,
  9.                 complete: function () { },
  10.                 success: function (result) {
  11.                 },
  12.                 error: function (result, status) { }
  13.             });
  14. </script></span>

 

3、直接传递JSON类型的字符串,如下:

  1. <span style=“font-size:14px;”><script>
  2. var jsondata=”{\”name\”:\””+name+”\”,\”password\”:\””+password+”\”}”;
  3. $.ajax({
  4.                 type: “POST”,
  5.                 contentType: “application/json;charset=utf-8″,
  6.                 url: “ApplyEdit.aspx/SaveParticipant”,
  7.                 data: jsondata,
  8.                 dataType: “json”,
  9.                 complete: function () { },
  10.                 success: function (result) {
  11.                 },
  12.                 error: function (result, status) { }
  13.             });
  14. </script></span>

 

4、使用JSON.parse(),将JSON类型的字符串转换为JSON对象,示例如下:

  1. <span style=“font-size:14px;”><script>
  2. var jsondata=”{\”name\”:\””+name+”\”,\”password\”:\””+password+”\”}”;
  3. $.ajax({
  4.                 type: “POST”,
  5.                 contentType: “application/json;charset=utf-8″,
  6.                 url: “ApplyEdit.aspx/SaveParticipant”,
  7.                 data: JSON.parse(jsondata),
  8.                 dataType: “json”,
  9.                 complete: function () { },
  10.                 success: function (result) {
  11.                 },
  12.                 error: function (result, status) { }
  13.             });
  14. </script></span>

C#中json字符串的序列化和反序列化 - 万能的聪哥 - 博客园

mikel阅读(1416)

来源: C#中json字符串的序列化和反序列化 – 万能的聪哥 – 博客园

今日写番茄闹钟程序,打算添加日程安排内容,使用到json格式文件的序列化和反序列化:

什么是 Json ?

       Json【JavaScript对象表示方法】,

       它是一个轻量级的数据交换格式,我们可以很简单的来读取和写它,

       并且它很容易被计算机转化和生成,它是完全独立于语言的。

 

Json支持下面两种数据结构:

  • 键值对的集合–各种不同的编程语言,都支持这种数据结构;
  • 有序的列表类型值的集合–这其中包含数组,集合,矢量,或者序列,等等。

Json有下面几种表现形式:

     1.对象

           一个没有顺序的“键/值”,一个对象以花括号“{”开始,并以花括号”}”结束,

在每一个“键”的后面,有一个冒号,并且使用逗号来分隔多个键值对。

例如:var user = {“name”:”Manas”,”gender”:”Male”,”birthday”:”1987-8-8″}

     2.数组

           设置值的顺序,一个数组以中括号”[“开始,并以中括号”]”结束,

并且所有的值使用逗号分隔,

例如:

var userlist = [

{“user”:{“name”:”Manas”,”gender”:”Male”,”birthday”:”1987-8-8″}},
{“user”:{“name”:”Mohapatra”,”Male”:”Female”,”birthday”:”1987-7-7″}}

]

     3.字符串

            任意数量的Unicode字符,使用引号做标记,并使用反斜杠来分隔。

(注意: 引号  逗号  冒号  均为英文状态下半角符号, 且只能是双引号 )

例如: var userlist = “{\”ID\”:1,\”Name\”:\”Manas\”,\”Address\”:\”India\”}”

 

C#中具体如何使用:           

           在C#中我们经常使用下面的工具来解析Json格式的内容

            Newtonsoft.Json,是.Net中开源的Json序列化和反序列化工具,官方地址:http://www.newtonsoft.com/json

具体使用:

1. 右键项目=>Nuget包管理=>添加  Newtonsoft.Json

2. 引入命名空间

1 using Newtonsoft.Json;

3. 定义类

复制代码
     public class Student
     {  
        public int ID { get; set; }
 
        public string Name { get; set; }

        public int Age { get; set; }

        public string Sex { get; set; }
     }
复制代码

4. 序列化和反序列化实体对象

复制代码
//序列化对象
    Student one = new Student()
    { ID = 1, Name = "武松", Age = 250, Sex = "男" }; 

    //序列化
    string jsonData = JsonConvert.SerializeObject(one); 

    Console.WriteLine(jsonData);  //显示结果
    Console.ReadLine();

    //反序列化对象
    string str = "{\"ID\":2,\"Name\":\"鲁智深\",\"Age\":230,\"Sex\":\"男\"}";

    //反序列化
    Student two = JsonConvert.DeserializeObject<Student>(str);

    Console.WriteLine(
           string.Format("学生信息  ID:{0},姓名:{1},年龄:{2},性别:{3}",
           two.ID,two.Name, two.Age,two.Sex));//显示结果
    Console.ReadLine();
复制代码

输出结果:

5. 序列化实体对象集合

复制代码
   //序列化对象集合
   List<Student> oneList = new List<Student>() {
        new Student{ ID = 1, Name = "武大", Age = 260, Sex = "男" },
        new Student{ ID = 2, Name = "武二", Age = 250, Sex = "男" },
        new Student{ ID = 3, Name = "武三", Age = 240, Sex = "女" }
   }; //定义对象

    string jsonData = JsonConvert.SerializeObject(oneList); //序列化

    Console.WriteLine(jsonData);  //显示结果
    Console.ReadLine();
复制代码

显示结果:

6. 反序列化实体对象集合(这里直接使用了 5 中的jsonData 字符串  , 原谅我偷点懒 )

复制代码
   List<Student> twoList = JsonConvert.DeserializeObject<List<Student>>(jsonData);

   foreach(Student stu in twoList)
   {
        Console.WriteLine(
        string.Format("学生信息  ID:{0},姓名:{1},年龄:{2},性别:{3}",
                                     stu.ID, stu.Name, stu.Age, stu.Sex));//显示结果   
    }
    Console.ReadLine();
复制代码

显示结果:

Layui table 组件的使用:初始化加载数据、数据刷新表格、传参数 - LoveLong - 博客园

mikel阅读(4822)

来源: Layui table 组件的使用:初始化加载数据、数据刷新表格、传参数 – LoveLong – 博客园

笔者之前一直使用 bootstrap table ,因为当前项目中主要使用 Layui 框架,于是也就随了 Layui table ,只是在使用的时候出现了一些问题,当然也是怪自己不熟悉的锅吧!

出现的问题:

1、使用 Layui 官方提供的 【转换静态表格】 方式初始化加载时报 id 找不到的错误(自己的锅)

2、传递参数问题(姑且算是 Layui 官方的锅)(自己的锅)

笔者使用的 table 加载刷新方案

有一个页面,左侧是一个 tree,右侧是一个 table,默认 table 加载全数据,当点击 tree 节点时,table 进行筛选,很简单的需求吧!

001这里我们不谈 tree 的使用,将仅仅贴出 table 的相关方法!

首先贴出源表格代码:

<table class="layui-table">
<thead>
<tr>
<th>序号</th>
<th>销售ID</th>
<th>姓名</th>
<th>年份</th>
<th>一月</th>
<th>二月</th>
<th>年度</th>
<th>操作</th>
</tr>
</thead>
</table>
<script type="text/html" id="barDemo1">
    <a class="layui-btn layui-btn-mini" lay-event="edit">编辑</a>
</script>

直接在代码中通过注释讲解:

(function () {
    //加载列表的后端 url
    var getListUrl = '';

    //对于任意一个 table,按照官方的说法,有三种不同的初始化渲染方式,不多介绍,而这里使用的方式姑且看做第三种:转换静态表格 方式
    //转换静态表格方式,自然首先需要有一个已经存在的表格,然后再通过 js 方式转化为 Layui 表格
    //无论哪种方式的 Layui table 初始化自然需要配置项
    //通过转化的方式初始化 Layui table,配置项部分可以在 源table中,部分在js中,源 table 的源代码上文已经给出,下面给出一个示例的 js 中的配置项
    var tableOptions = {
        url: getListUrl, //请求地址
        method: 'POST', //方式
        id: 'listReload', //生成 Layui table 的标识 id,必须提供,用于后文刷新操作,笔者该处出过问题
        page: false, //是否分页
        where: { type: "all" }, //请求后端接口的条件,该处就是条件错误点,按照官方给出的代码示例,原先写成了 where: { key : { type: "all" } },结果并不是我想的那样,如此写,key 将是后端的一个类作为参数,里面有 type 属性,如果误以为 key 是 Layui 提供的格式,那就大错特错了
        response: { //定义后端 json 格式,详细参见官方文档
            statusName: 'Code', //状态字段名称
            statusCode: '200', //状态字段成功值
            msgName: 'Message', //消息字段
            countName: 'Total', //总数字段
            dataName: 'Result' //数据字段
        }
    };

    //
    layui.use(['table', 'layer'], function () {//layui 模块引用,根据需要自行修改
        var layer = layui.layer, table = layui.table;

        //表初始化
        var createTable = function () {
            table.init('EditListTable', tableOptions);
// table lay-filter
   };

        //表刷新方法
        var reloadTable = function (item) {
            table.reload("listReload", { //此处是上文提到的 初始化标识id
                where: {
                    //key: { //该写法上文已经提到
                        type: item.type, id: item.id
                    //}
                }
            });
        };

        //表初始化
        createTable();

        //其他和 tree 相关的方法,其中包括 点击 tree 项调用刷新方法
    });
})();

后端方法:

//本示例中,后台代码写法
public ActionResult GetGoalList(string type, string id)
{
      //
}


//如果按照官方文档条件项,应该是下面的写法
public ActionResult GetGoalList(keyItem key)
{
      //
}
public class keyItem
{
    public string id { get; set; }
    public string type { get; set; }
}

php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法 - __Rain丶 - 博客园

mikel阅读(994)

来源: php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法 – __Rain丶 – 博客园

php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法,主要使用到了 php 的时间函数 mktime。下面首先还是直奔主题以示例说明如何使用 mktime 获取今日、昨日、上周、本月的起始时间戳和结束时间戳,然后在介绍一下 mktime 函数作用和用法。


//php获取今日开始时间戳和结束时间戳
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
//php获取昨日起始时间戳和结束时间戳
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
//php获取上周起始时间戳和结束时间戳
$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
//php获取本月起始时间戳和结束时间戳
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));

PHP mktime() 函数用于返回一个日期的 Unix 时间戳。

语法

mktime(hour,minute,second,month,day,year,is_dst)

参数 描述
hour 可选。规定小时。
minute 可选。规定分钟。
second 可选。规定秒。
month 可选。规定用数字表示的月。
day 可选。规定天。
year 可选。规定年。在某些系统上,合法值介于 1901 – 2038 之间。不过在 PHP 5 中已经不存在这个限制了。
is_dst 可选。如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。

自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性。

 

用法

参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。

参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。

注意在 PHP 5.1 之前,如果该函数的参数非法,则会返回 false。

另外需要注意的是该函数对于日期运算和验证非常有用。它可以自动校正越界的输入,如:

1 echo(date("M-d-Y",mktime(0,0,0,12,36,2001)));

将输出结果如:

Jan-05-2002

 

二、

//获取今天00:00
$todaystart = strtotime(date('Y-m-d'.'00:00:00',time()));
//获取今天24:00
$todayend = strtotime(date('Y-m-d'.'00:00:00',time()+3600*24));
//统计今天注册的用户
$todayuser['create_time'] = array(between,"$todaystart,$todayend");
$todaysum = $Users-&gt;where($todayuser)-&gt;count();

//获取昨天00:00
$timestart = strtotime(date('Y-m-d'.'00:00:00',time()-3600*24));
//获取今天00:00
$timeend = strtotime(date('Y-m-d'.'00:00:00',time()));
//统计昨天注册的用户
$map['create_time'] = array(between,"$timestart,$timeend");
$daycount = $Users-&gt;where($map)-&gt;count();

$this-&gt;assign("todaysum",$todaysum);
$this-&gt;assign("daycount",$daycount);

微擎函数iserializer和iunserializer序列化函数 - CSDN博客

mikel阅读(3618)

数组的序列化: $arr = array(‘url’=>’www.phpos.net’,’function’,’num’=>99,’question’=>’您喜欢哪个网站?’,’answer’=>array(‘微信网’,’腾讯网’,’百度网’)); var_dump(iserializer($arr));  结果:string ‘a:5:{s:3:”url

来源: 微擎函数iserializer和iunserializer序列化函数 – CSDN博客

数组的序列化:

  $arr = array('url'=>'www.phpos.net','function','num'=>99,'question'=>'您喜欢哪个网站?','answer'=>array('微信网','腾讯网','百度网'));
  var_dump(iserializer($arr));

结果:


string 'a:5:{s:3:"url";s:13:"www.phpos.net";i:0;s:8:"function";s:3:"num";i:99;
s:8:"question";s:24:"您喜欢哪个网站?";s:6:"answer";
a:3:{i:0;s:9:"微信网";i:1;s:9:"腾讯网";i:2;s:9:"百度网";}}'

返回的字符串里面:a 表示数组;s 表示字符串;i 表示整型;每对大括号表示一个数组,嵌套的大括号类似{{1};{2}},1和2表示两个数组,并且这两个数组最外层还有一个大括号,所以,这两个数组是外面还是一个数组。
iunserializer反