时间转换工作不正常

Time conversion Not working properly?

本文关键字:不正常 工作 转换 时间      更新时间:2023-09-26

我在项目中使用离子时间选择器。当我选择时间选择器时,它会将一个值传递给控制器。例如,当我选择09:00pm时,控制台显示79200。如果我选择07:00pm,控制台显示68400。我想将该值转换为12小时格式。我已经采取了一些步骤,但对我不起作用。

我的代码:

var a = new Date($scope.timePickerObject12Hour.inputEpochTime*1000);
console.log(a);
var b = moment.utc(a).format("HH:mm");
console.log(b)
$scope.timePickerObject12Hour.inputEpochTime = val;
console.log(val);
//var yourDateObject = new Date();
var selectedTime = new Date();
var amPmHour = $filter('date')(selectedTime, 'hh');
console.log(amPmHour);
$scope.time = $filter('date')(new Date(val*1000), 'hh:mma');
console.log($scope.time);
console.log('Selected epoch is : ', val, 'and the time is ', selectedTime.getUTCHours(), ':', selectedTime.getUTCMinutes(), 'in UTC');

我尝试了上面的代码,但没有任何效果。下面我添加了我的原始代码:

$scope.timePickerObject12Hour.inputEpochTime = val;
    console.log(val);
    console.log('Selected epoch is : ', val, 'and the time is ', selectedTime.getUTCHours(), ':', selectedTime.getUTCMinutes(), 'in UTC');
  1. 在第一个控制台日志上,我得到68400
  2. 对于第二个控制台日志,我得到68400,时间是UTC的19:00。如何转换所选时间的12小时格式

我假设您希望结果是字符串。下面是一个使用moment.js:的简单实现

var secs = 68400;
console.log(moment().startOf('day').add(secs, 'seconds').format("h:mm a"));

将输出"7:00 pm"

在plunker中查看http://plnkr.co/edit/D0ai2PpEhnuJkTYblW29?p=preview

您可以使用模运算符接收12Hrs格式:

var hours = new Date(68400000).getHours();    // 20 o'clock in milliseconds
hours = hours % 12;                           // Division by 12
hours = hours ? hours : 12;                   // the hour '0' should be '12'
console.log(hours)                            // 8
var secs = 68400;
console.log(moment().startOf('day').add(secs, 'seconds').format("hh:mma"));

看到我输出为07:00pm!所以07:00pm被称为12小时时钟