Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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
用于表存储行键的Javascript反向排序日期字符串_Javascript_.net_Date - Fatal编程技术网

用于表存储行键的Javascript反向排序日期字符串

用于表存储行键的Javascript反向排序日期字符串,javascript,.net,date,Javascript,.net,Date,当条目从Azure表存储返回时,它们将根据分区和行键按字典顺序返回。如果将反向日期顺序字符串用作行键,则可以使用此选项来避免使用order by子句 在.net中,为了生成以这种方式使用的行键,可以使用以下代码: var rowKey = String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks ); 考虑到毫秒是javascript日期中时间的最小部分,最接近等效行键生成方法的是什么?DateTime.U

当条目从Azure表存储返回时,它们将根据分区和行键按字典顺序返回。如果将反向日期顺序字符串用作行键,则可以使用此选项来避免使用order by子句

在.net中,为了生成以这种方式使用的行键,可以使用以下代码:

var rowKey = String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks );

考虑到毫秒是javascript日期中时间的最小部分,最接近等效行键生成方法的是什么?

DateTime.UtcNow.Ticks
在JS中等效为:

(new Date()).getTime()
或者(更简单):

DateTime.MaxValue.Ticks
在JS中没有直接等价物。但是,考虑到
日期对象
的范围是
-100000000
天到
100000000
天相对于
01/01/1970 UTC
(),可以用以下数字代替:

100000000 * 24 * 60 * 60 * 1000
所以整个代码的等价物是这样的:

var rowKey = (new Date(100000000 * 24 * 60 * 60 * 1000 - (new Date()).getTime())).toDateString();

那么您想将上面的代码从.net转换为JS吗?是的,尽管他们的翻译不是1:1,但接受了您的答案并对其进行了轻微更改:var currentTimeInMillions=new Date().getTime();var endOfTime=100000000*24*60*60*1000;var rowKey=new Date(endOfTime-currentTimein毫秒).getTime().toString();String.Format(“{0:D}”,dt);//“2008年3月9日星期日”
var rowKey = (new Date(100000000 * 24 * 60 * 60 * 1000 - (new Date()).getTime())).toDateString();