Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 世界上任何地方的时差_C#_.net - Fatal编程技术网

C# 世界上任何地方的时差

C# 世界上任何地方的时差,c#,.net,C#,.net,在我的网站上,我想确保如果时间间隔低于以下功能的DateTime st的1分钟,则可以采取行动,否则将被拒绝。这是代码 DateTime st = MyDate.Value; // current value from database: 2019-12-05 13:20:15.478 DateTime now = DateTime.Now; TimeSpan span = now.Subtract(st); int expMin

在我的网站上,我想确保如果时间间隔低于以下功能的
DateTime st
的1分钟,则可以采取行动,否则将被拒绝。这是代码

        DateTime st = MyDate.Value; // current value from database: 2019-12-05 13:20:15.478
        DateTime now = DateTime.Now;
        TimeSpan span = now.Subtract(st);
        int expMin = 1;

        if (span.Minutes < expMin)
        {
            // Do something
        }
        else
        {
            // Ignore
        }
DateTime st=MyDate.Value;//数据库中的当前值:2019-12-05 13:20:15.478
DateTime now=DateTime.now;
时间跨度=现在。减去(st);
int expMin=1;
如果(span.Minutes
因此,根据上述日期值,2019-12-05 13:21:15.478之后将无法访问该服务


这在本地和我的服务器上都有效,但我看到一些报告,其中一些用户正在从另一个国家访问该服务。是否有另一种方式来确保时间,无论用户来自哪个国家,都不能在一分钟的时间内被访问?

< P>你需要使用DATEMEMOffice来考虑用户的时区。 我假设“MyDate”是由客户机传递的。请参见下面的示例

        var myDate = new DateTimeOffset(2019, 12, 05, 13, 20, 15, 478, new TimeSpan(0, 2, 0, 0, 0));
        var now = new DateTimeOffset(2019, 12, 05, 14, 20, 45, 478, new TimeSpan(0, 3, 0, 0, 0));

        var span = now.Subtract(myDate);
        int expMin = 1;

        if (span.Minutes < expMin)
        {
            Console.WriteLine("Do something");
        }
        else
        {
            Console.WriteLine("Ignore");
        }
var myDate=new DateTimeOffset(2019,12,05,13,20,15478,new TimeSpan(0,2,0,0,0));
var now=新的DateTimeOffset(2019,12,05,14,20,45478,新的时间跨度(0,3,0,0,0));
var span=now.Subtract(myDate);
int expMin=1;
如果(span.Minutes对于这种情况,您需要考虑使用GST时区(意思是保存和检索数据库中的GST)。总是在数据库中存储UTC(协调的通用时间)时间。然后您可以轻松地将其与
DateTime.UtcNow
@BrianRogers Correct进行比较。我的意思是UTC而不是GST。如果使用UTC,您将丢失本地时间的信息。如果你不需要这些信息,这将是最简单的解决办法。@BrianRogers:不总是-请参阅。通常这是正确的做法,但并非总是如此。