用于表存储行键的Javascript反向排序日期字符串
当条目从Azure表存储返回时,它们将根据分区和行键按字典顺序返回。如果将反向日期顺序字符串用作行键,则可以使用此选项来避免使用order by子句 在.net中,为了生成以这种方式使用的行键,可以使用以下代码:用于表存储行键的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
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();