js时间戳和c#时间戳互转


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Newtonsoft.Json;

namespace TestWeb
{
    public partial class ajax : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //TestAjax()
            }
        }

        public void TestAjax()
        {
            var phone = Request.Form["phone"];
            var authcode = Request.Form["authcode"];
            var pt = Request.Form["pt"]; //js时间戳 new Date().getTime() eg: 1429503106452

            string outputmsg = string.Empty;

            if (phone != null && authcode != null && pt != null)
            {
                DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
                //说明下,时间格式为13位后面补加4个"0",如果时间格式为10位则后面补加7个"0"
                long lTime = long.Parse(pt + (pt.Length == 13 ? "0000" : "0000000"));
                TimeSpan toNow = new TimeSpan(lTime);
                DateTime dtResult = dtStart.Add(toNow); //得到转换后的时间

                string str = dtResult.ToString();
                outputmsg = OutMsg(new ResponseInfo { success = true, tag = 100, msg = "成功" });
            }

            Response.Write(outputmsg);
        }

        public long GetCurrentTicksForJs()
        {
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
            DateTime dtResult = DateTime.Now;//获取时间         
            long t = (dtResult.Ticks - startTime.Ticks) / 10000;//除10000调整为13位
            return t;
        }

        public string OutMsg(object obj)
        {
            return JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.Indented);
        }

        public class ResponseInfo
        {
            public bool success { get; set; }
            public int tag { get; set; }
            public string msg { get; set; }
        }

        //...

    }
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajax.aspx.cs" Inherits="TestWeb.ajax" %>

<script type="text/javascript">
    var d = new Date(<%=GetCurrentTicksForJs() %>);
    alert(formatDate(d)); 

    function formatDate(now) {
        var year = now.getFullYear();
        var month = now.getMonth() + 1;
        var date = now.getDate();
        var hour = now.getHours();
        var minute = now.getMinutes();
        var second = now.getSeconds();
        return year 
                + "-" 
                + (month.toString().length ==1 ? "0"+month : month) 
                + "-" 
                + (date.toString().length ==1 ? "0"+date : date)  + " " + hour + ":" + minute + ":" + second;
    }
</script>

var date = new Date(1459481266695);
Y = date.getFullYear() + '-';
M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
D = date.getDate() + ' ';
h = date.getHours() + ':';
m = date.getMinutes() + ':';
s = date.getSeconds(); 
console.log(Y+M+D+h+m+s); 
VM307:9 2016-04-1 11:27:46





你可能感兴趣的:(timezone,formatDate,getFullYear,TimeSpan,ToLocalTime)