如何将此时间戳函数从php转换为C#?

如何将此时间戳函数从php转换为C#?,c#,php,C#,Php,我需要将这个php代码转换成C# 我理解它与unix时代以来的微秒数有关,但我不理解的是我得到的结果。当我用这段代码运行脚本时 <?php echo (microtime(true) * 1000); echo '<br>'; echo intval(microtime(true) * 1000); ?> 现在,我可以通过C#代码获得1422560055622.8,但我不明白它是如何通过intval转换为925880646的。我希望intval将其转换为14225600

我需要将这个php代码转换成C#

我理解它与unix时代以来的微秒数有关,但我不理解的是我得到的结果。当我用这段代码运行脚本时

<?php
echo (microtime(true) * 1000);
echo '<br>';
echo intval(microtime(true) * 1000);
?>
现在,我可以通过C#代码获得1422560055622.8,但我不明白它是如何通过intval转换为925880646的。我希望intval将其转换为1422560055622或2147483647(32位整数的最大值)

更重要的是,如何在C#中复制此函数


编辑:听起来我的服务器上的PHP有问题,因为其他人复制了代码,但没有得到相同的结果。我现在可以转换代码了,如果有人想回答为什么会发生这种情况(我仍然很好奇),我会接受它。否则我会在我有能力的时候自己回答。

试着用
你的
微时间(真)*1000

或者简单地将其转换为整数
$yourint=(int)(microtime(true)*1000)


但我也尝试了您的代码,并返回了预期值。可能您使用的是旧版本的php,无法在
intval
函数中处理floatdecimal

作为后续评论:这是因为您安装的是32位php,而php只是删除了所有溢出位:

10100101100110111001011111101000101000110 - 1422560055622
           110111001011111101000101000110 - 925880646
        210987654321098765432109876543210
        333222222222211111111110000000000
请注意这些位是如何排列的,因为您的“错误”PHP数字有2个前导0位,所以当数字转换为可显示的字符串时,它们会被简单地删除。

这在c中也是一个相同的函数,我希望对您有所帮助

using System;
class StackOverFlow
{
static void Main()
{
    Console.Write(StackOverFlow.TimeStamp());
}
public static decimal TimeStamp()
{
    decimal returner = DateTime.Now.Millisecond * 1000;

    return returner;
}
}

为了显示正常值,您的php版本是什么?@Marius.C版本是5.5.12。我使用的是Wamp(www.wampserver.com/en/),请注意,如果您使用的是32位php,那么您的最大可能intval将是2**31->2147483647。@MarcB是的,我在问题中提到php版本是5.5.12。我正在使用Wamp(www.wampserver.com/en/),这很奇怪。然后尝试使用round或强制转换为整数。谢谢,但正如我在问题中所说的,我不是想完善php代码,而是想弄清楚它为什么这样做,然后转换成C。啊,对不起。我误解了你。
10100101100110111001011111101000101000110 - 1422560055622
           110111001011111101000101000110 - 925880646
        210987654321098765432109876543210
        333222222222211111111110000000000
using System;
class StackOverFlow
{
static void Main()
{
    Console.Write(StackOverFlow.TimeStamp());
}
public static decimal TimeStamp()
{
    decimal returner = DateTime.Now.Millisecond * 1000;

    return returner;
}
}