Maison  >  Article  >  développement back-end  >  Partage de code qui présente en détail la méthode de conversion mutuelle entre l'horodatage c# et l'horodatage js

Partage de code qui présente en détail la méthode de conversion mutuelle entre l'horodatage c# et l'horodatage js

黄舟
黄舟original
2017-03-23 11:28:562018parcourir

L'éditeur ci-dessous vous proposera un article sur la façon de convertir les horodatages js et les horodatages c# (recommandé). L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil

Les exemples sont les suivants :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn