解析 (创建Lunisolar对象)
About 3 min
解析 (创建Lunisolar对象)
lunisolar()
通过lunisolar() 函数创建一个 Lunisolar实例对象:
lunisolar(date?: string | number | Date | Lunisolar, config?: ConfigType): Lunisolar
参数说明
date {string | number | Date | undefined}
要解析的时间
- 当为string类型时,传入时间字符串,如 '2022-07-18'
- 当为number类型时,传入以毫秒为单位的时间戳
- 亦可传入一个Date对象
- 当不传入参数,即为undefine时,即取当前时间
config {ConfigType}
设置, 为一个对像,其内容如下:
type ConfigType = {
lang: string // 语言包名称,默认为zh,即使用繁体中文
changeAgeTerm: number // 换岁时气的索引,默认值为2,即立春。(注:节气列表从小寒开始)
isUTC: boolean // 是否使用UTC时间,为true时,lunisolar生成的所有时间都是UTC时间,需要用local转为本地时
offset: number // 时间偏移,以分钟为单位, 默认为0
}
示例
// 传入字符串
lunisolar('2022-07-18 14:40')
lunisolar('2022/07/18')
// 不传入参数时,为当前时间
lunisolar()
// 传入时间戳 (毫秒为单位)
lunisolar(1658289207143)
// 传入Date对象
lunisolar(new Date(2022, 6, 20))
// 传入Lunisolar对象时,将克隆一个Lunisolar对象
lunisolar(lunisolar())
//
const config = {
lang: 'en' // 更改用语言,需先加载对应语言包,详见文档 【国际化】的说明
}
lunisolar('2022-07-18 14:40', config)
lunisolar.fromLunar() 阴历反查
通过阴历数据创建一个Lunisolar实例对象,此法可用来阴历转公历:
lunisolar.fromLunar(lunarData: FromLunarData, config: ConfigType): Lunisolar
参数说明
lunarData: FromLunarData
type FromLunarData = {
year?: number | string
// 该年正月初一所在公历年的年份,可以是字符串,默认值为当前日期的年份
month: number | string
// 阴历月份,可以是字符串,必填, 当月份数大于100时,表明时闰月,如闰4月,可输入104
day: number | string
// 阴历日,可以是字符串,必填
hour?: number | string
// 时辰索引值或时辰名,默认为0, 即子时。设置时辰后,返回的小时为该时辰的中间时间,如寅时,会返回4点正的时间。
isLeapMonth?: boolean
// 指明月份是否闰月,默认为false, 当month设为大于100的数时,会无视此设置
}
示例1
const lunarData = {
year: 2022,
month: 10,
day: 25
}
const lsr = lunisolar.fromLunar(lunarData) // 成功创建一个个Lunisolar实例对象
console.log(lsr.format('YYYY-MM-DD')) // 2022-11-18
示例2
你也可以使用汉字进行阴历反查
// lunisolar默认使用繁体中文语言包,此语言包默认自动加载,可直接使用繁体中文
// 使用其它语言包参考示例3
const lunarData = {
year: '二〇二〇',
month: '閏四月',
day: '廿四'
}
const lsr = lunisolar.fromLunar(lunarData) // 成功创建一个个Lunisolar实例对象
console.log(lsr.format('YYYY-MM-DD')) // 2020-06-15
示例3
使用简体中文进行阴历反查
import lunisolar from 'lunisolar'
import zhCn from 'lunisolar/locale/zh-cn'
import ja from 'lunisolar/locale/ja'
lunisolar.locale(ja) // 加载日文语言包
lunisolar.locale(zhCn) // 加载简体中文语言包,最后加载者,会全局默认使用该语言包
const lunarData = {
year: '二〇二〇',
month: '闰四月', // 此时,如果还是使用繁体的“閏”字会报错。
day: '廿四'
}
const lsr = lunisolar.fromLunar(lunarData) // 成功创建一个个Lunisolar实例对象
console.log(lsr.format('YYYY-MM-DD')) // 2020-06-15
// lunisolar.locale(zhCn) 加载简体中文语言名后,会全局使用zh-cn语言包
// 如果个别实例想使用其它语言包可通config进行临时更改,如使用日文,
const lsr2 = lunisolar.fromLunar({
year: '二〇二〇',
month: '睦月',
day: '一日'
}, {
lang: 'ja' // 指正要使用的语言包名
})
console.log(lsr.format('YYYY-MM-DD')) // 2020-01-25
lunisolar.utc()
用于创建一个UTC时间,返回一个 Lunisolar实例对象:
lunisolar.utc(date?: string | number | Date | Lunisolar, config?: ConfigType): Lunisolar
其参数与lunisolar()的参数一致,而config.isUTC会自动设为true
// 以下两种写法的效果一致
const lsr1 = lunisolar('2023-03-14 18:00', { isUTC: true })
const lsr2 = lunisolar.utc('2023-03-14 18:00')