[轉]PHP .net 時間戳轉換_PHP教程
• php教程• 發佈:2018-10-06
原文: http://hi.baidu.com/wlj1013/item/e155970f105f7626a1312d58
c#中沒有象PHP一樣的time()時間戳函式,但有DateTime.Now.Ticks用來計算時間差。
此屬性的值為自 0001 年 1 月 1 日午夜 12:00 以來所經過時間以 100 毫微秒為間隔表示時的數字。
dotnet下用DateTime.Now.Ticks能夠得到精確的時間,單位是10^-7s。
經過實驗,發現
long a=(DateTime.Now.Ticks-aa.Ticks)/10000000-8*60*60;
tbxUrl.Text=a.ToString();
要減去8*60*60才和time()函式得到的值一樣。
什麼問題?剛好是8個時區產生的差別。
DateTime aa=new DateTime(1970,1,1);
MessageBox.Show("1970 "+aa.Ticks.ToString()+"now"+DateTime.Now.Ticks.ToString());
long a=(DateTime.Now.Ticks-aa.Ticks)/10000000-8*60*60;
tbxUrl.Text=a.ToString();
同時發現c#裡面DataTime有一個屬性!DateTime.UtcNow已經考慮了時區問題。
ok~ 使用下面的程式碼即可
DateTime timeStamp=new DateTime(1970,1,1); //得到1970年的時間戳
long a=(DateTime.UtcNow.Ticks-timeStamp.Ticks)/10000000; //注意這裡有時區問題,用now就要減掉8個小時
相應的將PHP的時間轉換成.net 中的DateTime,
static DateTimeConvertTime(long time)
{
DateTime timeStamp = new DateTime(1970, 1, 1); //得到1970年的時間戳
long t = (time + 8 * 60 * 60) * 10000000 + timeStamp.Ticks;
DateTime dt = new DateTime(t);
return dt;
}
