Powershell 测试现在是否在两倍于午夜跨度之间

Powershell 测试现在是否在两倍于午夜跨度之间,powershell,timespan,Powershell,Timespan,我试着寻找这个,但我不知所措。。。我可以找到其他语言的答案,但无法找到PowerShell的答案 基本上,我想测试现在的时间是否在21:15到5:45之间 我很确定我需要使用新的时间跨度——但是,就我的一生而言,我就是无法解决这个问题 我想分享我的测试代码,但我想我离答案太远了,这没有任何帮助 有人能帮我吗?使用Get Date创建DateTime对象,将这些阈值描述为今天日期的时间点,然后测试当前时间是早一点之前还是晚一点之后: $now = Get-Date $morning = Get-D

我试着寻找这个,但我不知所措。。。我可以找到其他语言的答案,但无法找到PowerShell的答案

基本上,我想测试现在的时间是否在21:15到5:45之间

我很确定我需要使用新的时间跨度——但是,就我的一生而言,我就是无法解决这个问题

我想分享我的测试代码,但我想我离答案太远了,这没有任何帮助


有人能帮我吗?

使用
Get Date
创建
DateTime
对象,将这些阈值描述为今天日期的时间点,然后测试当前时间是早一点之前还是晚一点之后:

$now = Get-Date
$morning = Get-Date -Date $now -Hour 5 -Minute 45
$evening = Get-Date -Date $now -Hour 21 -Minute 15

$isWithinRange = $now -le $morning -or $now -ge $evening

使用
Get Date
创建
DateTime
对象,将这些阈值描述为今天日期的时间点,然后测试当前时间是早一个还是晚一个:

$now = Get-Date
$morning = Get-Date -Date $now -Hour 5 -Minute 45
$evening = Get-Date -Date $now -Hour 21 -Minute 15

$isWithinRange = $now -le $morning -or $now -ge $evening

如果这纯粹是一天中的某个时间,并且您不需要任何日期计算,您可以执行以下操作,这取决于填充数字字符串的词法排序等于数字排序的事实:

# Get the current point in time's time of day in 24-hour ('HH') format.
# Same as: [datetime]::Now.ToString('HH\:mm')
$timeNow = Get-Date -Format 'HH\:mm'

$timeNow -ge '21:15' -or $timeNow -le '05:45'

如果这纯粹是一天中的某个时间,并且您不需要任何日期计算,您可以执行以下操作,这取决于填充数字字符串的词法排序等于数字排序的事实:

# Get the current point in time's time of day in 24-hour ('HH') format.
# Same as: [datetime]::Now.ToString('HH\:mm')
$timeNow = Get-Date -Format 'HH\:mm'

$timeNow -ge '21:15' -or $timeNow -le '05:45'

您需要对其进行特殊处理,如果time2