用于表存储行键的Javascript逆序日期字符串

问题描述 投票:1回答:1

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

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

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

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

javascript .net date
1个回答
2
投票

JS中的DateTime.UtcNow.Ticks等效于:

(new Date()).getTime()

或者(更简单):

Date.now()

DateTime.MaxValue.Ticks在JS中没有直接的等价物。但是,考虑到Date object范围是-100,000,000天到100,000,000天相对于01/01/1970 UTCref.)它可以用以下数字代替:

100000000 * 24 * 60 * 60 * 1000

所以相当于整个代码是这样的:

var rowKey = (new Date(100000000 * 24 * 60 * 60 * 1000 - (new Date()).getTime())).toDateString();
© www.soinside.com 2019 - 2024. All rights reserved.