ホームページ  >  記事  >  バックエンド開発  >  C#タイムスタンプとJSタイムスタンプの相互変換方法を詳しく紹介するコードシェアリング

C#タイムスタンプとJSタイムスタンプの相互変換方法を詳しく紹介するコードシェアリング

黄舟
黄舟オリジナル
2017-03-23 11:28:562059ブラウズ

以下のエディターは、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() + &#39;-&#39;;
M = (date.getMonth()+1 < 10 ? &#39;0&#39;+(date.getMonth()+1) : date.getMonth()+1) + &#39;-&#39;;
D = date.getDate() + &#39; &#39;;
h = date.getHours() + &#39;:&#39;;
m = date.getMinutes() + &#39;:&#39;;
s = date.getSeconds(); 
console.log(Y+M+D+h+m+s); 
VM307:9 2016-04-1 11:27:46

以上がC#タイムスタンプとJSタイムスタンプの相互変換方法を詳しく紹介するコードシェアリングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。