New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

koishi-utils

Package Overview
Dependencies
Maintainers
1
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

koishi-utils - npm Package Compare versions

Comparing version 2.0.1 to 2.0.2

5

dist/date.d.ts
export declare function setTimezoneOffset(offset: number): void;
export declare function getTimezoneOffset(): number;
export declare function getDateNumber(date?: number | Date, offset?: number): number;
export declare function fromDateNumber(value: number, offset?: number): Date;
export declare function parseTime(source: string): number;
export declare function parseDate(date: string): Date;
export declare function formatTime(ms: number): string;
export declare function formatTimeInterval(time: Date, interval: number): string;

86

dist/date.js

@@ -8,2 +8,11 @@ "use strict";

exports.setTimezoneOffset = setTimezoneOffset;
function getTimezoneOffset() {
return timezoneOffset;
}
exports.getTimezoneOffset = getTimezoneOffset;
const second = 1000;
const minute = second * 60;
const hour = minute * 60;
const day = hour * 24;
const week = day * 7;
function getDateNumber(date = new Date(), offset) {

@@ -14,12 +23,83 @@ if (typeof date === 'number')

offset = timezoneOffset;
return Math.floor((date.valueOf() / 60000 - offset) / 1440);
return Math.floor((date.valueOf() / minute - offset) / 1440);
}
exports.getDateNumber = getDateNumber;
function fromDateNumber(value, offset) {
const date = new Date(value * 86400000);
const date = new Date(value * day);
if (offset === undefined)
offset = timezoneOffset;
return new Date(+date + offset * 60000);
return new Date(+date + offset * minute);
}
exports.fromDateNumber = fromDateNumber;
const timeRegExp = /^(\d+(?:\.\d+)?w(?:eek(?:s)?)?)?(\d+(?:\.\d+)?d(?:ay(?:s)?)?)?(\d+(?:\.\d+)?h(?:our(?:s)?)?)?(\d+(?:\.\d+)?m(?:in(?:ute)?(?:s)?)?)?(\d+(?:\.\d+)?s(?:ec(?:ond)?(?:s)?)?)?$/;
function parseTime(source) {
const capture = timeRegExp.exec(source);
if (!capture)
return 0;
return (parseFloat(capture[1]) * week || 0)
+ (parseFloat(capture[2]) * day || 0)
+ (parseFloat(capture[3]) * hour || 0)
+ (parseFloat(capture[4]) * minute || 0)
+ (parseFloat(capture[5]) * second || 0);
}
exports.parseTime = parseTime;
function parseDate(date) {
let parsed;
if (parsed = parseTime(date)) {
date = Date.now() + parsed;
}
else if (/^\d{1,2}(:\d{1,2}){1,2}$/.test(date)) {
date = `${new Date().toLocaleDateString()}-${date}`;
}
else if (/^\d{1,2}-\d{1,2}-\d{1,2}(:\d{1,2}){1,2}$/.test(date)) {
date = `${new Date().getFullYear()}-${date}`;
}
return date ? new Date(date) : new Date();
}
exports.parseDate = parseDate;
function formatTime(ms) {
let result;
if (ms >= day - hour / 2) {
ms += hour / 2;
result = Math.floor(ms / day) + ' 天';
if (ms % day > hour) {
result += ` ${Math.floor(ms % day / hour)} 小时`;
}
}
else if (ms >= hour - minute / 2) {
ms += minute / 2;
result = Math.floor(ms / hour) + ' 小时';
if (ms % hour > minute) {
result += ` ${Math.floor(ms % hour / minute)} 分钟`;
}
}
else if (ms >= minute - second / 2) {
ms += second / 2;
result = Math.floor(ms / minute) + ' 分钟';
if (ms % minute > second) {
result += ` ${Math.floor(ms % minute / second)} 秒`;
}
}
else {
result = Math.round(ms / second) + ' 秒';
}
return result;
}
exports.formatTime = formatTime;
const dayMap = ['日', '一', '二', '三', '四', '五', '六'];
function formatTimeInterval(time, interval) {
if (!interval) {
return time.toLocaleString();
}
else if (interval === day) {
return `每天 ${time.toLocaleTimeString()}`;
}
else if (interval === week) {
return `每周${dayMap[time.getDay()]} ${time.toLocaleTimeString()}`;
}
else {
return `${time.toLocaleString()} 起每隔 ${formatTime(interval)}`;
}
}
exports.formatTimeInterval = formatTimeInterval;
//# sourceMappingURL=date.js.map

2

package.json
{
"name": "koishi-utils",
"description": "Utilities for Koishi",
"version": "2.0.1",
"version": "2.0.2",
"main": "dist/index.js",

@@ -6,0 +6,0 @@ "typings": "dist/index.d.ts",

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc